123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace App\Services;
- use Illuminate\Support\Facades\Redis;
- use App\Profile;
- class SuggestionService {
- const CACHE_KEY = 'pf:services:suggestion:ids';
- public static function get($start = 0, $stop = -1)
- {
- return Redis::zrange(self::CACHE_KEY, $start, $stop);
- }
- public static function set($val)
- {
- return Redis::zadd(self::CACHE_KEY, 1, $val);
- }
- public static function del($val)
- {
- return Redis::zrem(self::CACHE_KEY, $val);
- }
- public static function add($val)
- {
- return self::set($val);
- }
- public static function rem($val)
- {
- return self::del($val);
- }
- public static function count()
- {
- return Redis::zcount(self::CACHE_KEY, '-inf', '+inf');
- }
- public static function warmCache($force = false)
- {
- if(self::count() == 0 || $force == true) {
- $ids = Profile::whereNull('domain')
- ->whereIsSuggestable(true)
- ->whereIsPrivate(false)
- ->whereHas('statuses')
- ->pluck('id');
- foreach($ids as $id) {
- self::set($id);
- }
- return 1;
- }
- return 0;
- }
- }
|