redis有序集合的一个应用
2017-07-27 13:07
260 查看
一.需求
记录用户uid和上次操作时间;并清除5分钟以前的数据.用redis的一个key实现.本打算用hash,但hash类型在过期5分钟以前的数据时颇为麻烦.二.代码实现
class LastLoginService { const CACHE_KEY_FIVE = 'last.login.five'; const LAST_MINUTE_FIVE = 5; /** * @param $user_id */ public static function loginAtFive($user_id) { self::clearExpired(); Redis::zadd(self::CACHE_KEY_FIVE, time(), $user_id); } /** * 返回user_id数组,按上次操作时间,降序排 */ public static function getAllFiveOnline() { self::clearExpired(); return Redis::zrevrange(self::CACHE_KEY_FIVE, 0, -1, 'WITHSCORES'); } /** * 清除过期数据 */ public static function clearExpired() { Redis::zremrangebyscore(self::CACHE_KEY_FIVE, 0, time() - self::LAST_MINUTE_FIVE * 60); } }
相关文章推荐
- 一个导出redis有序集合sorted-sets的shell脚本
- 一个导出redis有序集合sorted-sets的shell脚本
- Redis有序集合命令ZREVRANGEBYSCORE详解与应用
- Redis有序集合命令ZREVRANGEBYLEX详解与应用
- Redis有序集合命令ZRANGEBYLEX详解与应用
- Redis数据类型之有序集合类型
- Redis的有序集合|ZADD|ZREM|ZSCORE|ZINCRBY
- Redis的有序集合(sorted set)
- 编制一个能演示执行集合的并、交和差运算的程序。(有序表)
- Redis笔记7:数据类型之有序集合(sorted set)
- redis 有序集合数据结构实现 skiplist
- Redis 有序集合命令
- 深度搜索(递归)的应用 求一个数组中和为某特定值的元素集合
- Redis 学习笔记(七)之 有序集合
- redis学习笔记7--有序集合类型
- 线性表的顺序表 实现,及应用-----西文排序+前m个元素和后n个元素进行整体互换+构造纯集合+有序表求纯集合+循环有序链表表示两集合的并集
- Redis有序集合类型的操作
- redis之有序集合
- 设计一个接口,返回一组三角形的有序的数据集合
- 使用redis有序集合sorted set设计高效查询ip所在地