Redis 基础详解

码农日常1个月前更新 Trunks
579 0 0

5、SortedSet 类型

ZSet 常用操作

// ZSet常用操作
// 1、往有序集合key中加入带分值元素(或者更新已存在成员的分数)
ZADD key score member [score member ...]
// score是得分的意思,例如:
zadd df 90 lisi
// 2、从有序集合key中删除元素
ZREM key member [member ...]
// 3、返回有序集合key中元素member的分值
ZSCORE key member
// 4、为有序集合key中元素member的分值加上increment
ZINCRBY key increment member
// 5、返回有序集合key中的元素个数
ZCARD key
// 6、正序获取有序集合key从start下标到stop下标的元素
ZRANGE key start stop [WITHSCORES]
// 7、倒序获取有序集合key从start下标到stop下标的元素
ZREVRANGE key start stop [WITHSCORES]

ZSet 集合操作

Redis
// 并集计算
ZUNIONSTORE destkey numkeys key [key ...]
// 交集计算
ZINTERSTORE destkey numkeys key [key ...]

Redis 基础详解

适用场景

场景 1、热搜榜:

  • 点击一次新闻,ZINCRBY hotNews:20190819 1 新闻1号或者是 ZINCRBY hotNews:20190819 1 新闻1号 2 新闻2号
  • 展示当日排行前十,ZREVRANGE hotNews:20190819 0 9 WITHSCORES
  • 七日搜索榜单计算,ZUNIONSTORE hotNews:20190813-20190816 7 hotNews:20190813 hotNews:20190814 hotNews:20190815 hotNews:20190816
  • 展示七日排行前十,ZREVRANGE hotNews:20190813-20190819 0 9 WITHSCORES

场景2、根据商品销售对商品进行排序显示:

  • 定义商品销售排行榜(sortedset集合),key 为 goods:sellsort,分数为商品销售数量
  • 商品编号 1001 的销量是 9,商品编号 1002 的销量是 15,zadd goods:sellsort 9 1001 15 1002
  • 有一个客户又买了 2 件商品 1001,商品编号 1001 销量加 2,zincrby goods:sellsort 2 1001
  • 求商品销量前 10 名,zrange goods:sellsort 0 10 withscores

© 版权声明

相关文章

暂无评论

暂无评论...