Ganti Redis:: dengan Cache::

Jika anda mempunyai kemampuan untuk pasang ext-redis kepada PHP anda, maka anda tidak perlu menggunakan Redis:: tetapi cukup menggunakan Cache:: sahaja.

Perubahan yang perlu dibuat adalah tukar cache setting didalam .env daripada file kepada redis.

CACHE_DRIVER=redis

Kemudian ubah kod yang sebelum ini adalah panjang:

// app/Http/Repositories/AnnouncementRepository.php

public static function getActiveAnnouncements($date)
{
	$announcements = Redis::get('announcements:active');

	if ($announcements == null) {
		$announcements = Announcement::where('start_at', '<=', $date)
		->where('end_at', '>=', $date)
		->get();

            // make it expired every 6 hours
		Redis::set('announcements:active', $announcements, 43200);
	} else {
		$announcements = json_decode($announcements);
	}

	return $announcements;
}

Kepada yang lebih pendek:

// app/Http/Repositories/AnnouncementRepository.php

public static function getActiveAnnouncements($date)
{
return Cache::remember('announcements:active', 360, function () use ($date) {
return Announcement::where('start_at', '<=', $date)
->where('end_at', '>=', $date)
->get();
});
}

Kebaikkannya adalah dengan menggunakan Redis:: data yang diberikan adalah bentuk json string tetapi menggunakan Cache:: data yang dipulangkan kepada kita adalah di dalam bentuk collection.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.