laravel中使用有序集合

最近有一个需求

需要统计近一个月访问的应用

有三个入口每个入口进入都是一个后台,需要统计近一个月访问了哪些后台

最后在中间件中利用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`

    A+
发布日期:2022年12月29日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: