最近有一个需求
需要统计近一个月访问的应用
有三个入口每个入口进入都是一个后台,需要统计近一个月访问了哪些后台
最后在中间件中利用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`