最近有一个需求
需要统计近一个月访问的应用
有三个入口每个入口进入都是一个后台,需要统计近一个月访问了哪些后台
最后在中间件中利用redis的有序集合来实现
首先集合保证集合中的元素是唯一的,没有就添加元素加上分数为当前时间戳,如果元素已经存在,那么就更新时间戳
由于在redis中操作不用担心数据库的频繁操作
然后通过zrangebyscore来筛选数据
use Illuminate\Support\Facades\Redis;
Redis::zadd('app_history_'.$user_id, time(), $app_id);
以下为搜索
$ouser = $this->getOuserData();
$user_id = $ouser->id;
$last_month = strtotime("-1 months");
$app_ids = Redis::zrangebyscore('app_history_'.$user_id,$last_month,time());
dd($app_ids);
详细教程https://www.runoob.com/redis/sorted-sets-zrangebyscore.html
如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术
转载请注明:laravel中使用有序集合 出自老鄢博客 | 欢迎分享