【Redis缓存机制】7.SortSet排序集合类型操作
来源:互联网 发布:lm算法 编辑:程序博客网 时间:2024/06/06 15:36
Sort Set排序集合类型
(1)介绍
和set一样sorted set也是string类型元素的集合,
不同的是每个元素都会关联一个权。
通过权值可以有序的获取集合中的元素
该Sort Set类型适合场合:
获得热门帖子(回复量)信息:select * from message order by backnum desc linit 5;
(以上需求可以通过简单sql语句实现,但是sql语句比较耗费数据库资源)
(1)操作
zadd key score member 添加元素到集合,元素在集合中存在则更新对应score
zrem key member 删除指定元素,1表示成功,如果元素不存在返回0
zincrby key incr member 按照incr幅度增加对应member的score值,返回score值
zrank key member 返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的
zrevrank key member 同上,但是集合中元素是按score从大到小排序
zrange key start end 类似lrange操作是从集合中去指定区间的元素。返回的是有序的结果(从第start个到第end个元素)
zrevrange key start end 同上,返回结果是按score逆序的
zcard key 返回集合中元素个数
zscore key element 返回给定元素对应的score
zremrangebyrank key min max 删除集合中排名在给定区间的元素(权值从小到大排序)
(3)模拟
我们模拟帖子信息,将点击量比较高的帖子信息存储起来,看看是否
自动进行了排序。
我们只做一个sort set排序集合,里面只保留5个元素信息,该5个元素是回复
量最高的帖子。每个帖子被回复的时候,都有机会进入该集合里面,但是只有
回复量高的前五个帖子会存在于该集合,回复量低的就被删除。
创建一个sort set排序集合hotmessage的key,内部有5个元素:
然后第六个帖子的信息加入集合:
我们按照权值从大到小逆序排序显示一下我们的数据:
我们要删除回复量最低的数据(从小到大的排序后,删除区间为0到0的元素,也就是0本身)
可以看到之前排序权值最小的14被删除了
想查看某一个权值数据的排名(zrank从小到大,zrevrank从大到小),使用zrank指令
zcard指令可以返回SortSet集合中的元素个数
zincrby指令增加某个权值下的数值,我们给权值11的数据加200,
可以看到最后从大到小排行,11变成了数值最大的,排名第一了
最后,想查看某个权值对应的数据值,使用zscore就可以了:
总结:
关于重复元素:
Set类型:没有
List链表类型:有
(1)介绍
和set一样sorted set也是string类型元素的集合,
不同的是每个元素都会关联一个权。
通过权值可以有序的获取集合中的元素
该Sort Set类型适合场合:
获得热门帖子(回复量)信息:select * from message order by backnum desc linit 5;
(以上需求可以通过简单sql语句实现,但是sql语句比较耗费数据库资源)
(1)操作
zadd key score member 添加元素到集合,元素在集合中存在则更新对应score
zrem key member 删除指定元素,1表示成功,如果元素不存在返回0
zincrby key incr member 按照incr幅度增加对应member的score值,返回score值
zrank key member 返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的
zrevrank key member 同上,但是集合中元素是按score从大到小排序
zrange key start end 类似lrange操作是从集合中去指定区间的元素。返回的是有序的结果(从第start个到第end个元素)
zrevrange key start end 同上,返回结果是按score逆序的
zcard key 返回集合中元素个数
zscore key element 返回给定元素对应的score
zremrangebyrank key min max 删除集合中排名在给定区间的元素(权值从小到大排序)
(3)模拟
我们模拟帖子信息,将点击量比较高的帖子信息存储起来,看看是否
自动进行了排序。
我们只做一个sort set排序集合,里面只保留5个元素信息,该5个元素是回复
量最高的帖子。每个帖子被回复的时候,都有机会进入该集合里面,但是只有
回复量高的前五个帖子会存在于该集合,回复量低的就被删除。
创建一个sort set排序集合hotmessage的key,内部有5个元素:
然后第六个帖子的信息加入集合:
我们按照权值从大到小逆序排序显示一下我们的数据:
我们要删除回复量最低的数据(从小到大的排序后,删除区间为0到0的元素,也就是0本身)
可以看到之前排序权值最小的14被删除了
想查看某一个权值数据的排名(zrank从小到大,zrevrank从大到小),使用zrank指令
zcard指令可以返回SortSet集合中的元素个数
zincrby指令增加某个权值下的数值,我们给权值11的数据加200,
可以看到最后从大到小排行,11变成了数值最大的,排名第一了
最后,想查看某个权值对应的数据值,使用zscore就可以了:
总结:
关于重复元素:
Set类型:没有
List链表类型:有
Sort Set类型:没有
阅读全文
0 0
- 【Redis缓存机制】7.SortSet排序集合类型操作
- 【Redis缓存机制】7.SortSet排序集合类型操作
- 【Redis缓存机制】7.SortSet排序集合类型操作
- 【Redis缓存机制】6.Set集合类型操作使用
- 【Redis缓存机制】8.Hash集合类型操作使用
- 【Redis缓存机制】6.Set集合类型操作使用
- 【Redis缓存机制】8.Hash集合类型操作使用
- 【Redis缓存机制】6.Set集合类型操作使用
- 【Redis缓存机制】8.Hash集合类型操作使用
- Redis的SortSet(有序集合)
- NoSQL之Redis---SortSet类型命令
- 【Redis缓存机制】4.String字符串类型操作
- 【Redis缓存机制】4.String字符串类型操作
- redis中Set集合SortSet有序集合的复制
- Redis集合类型的操作
- 【Redis缓存机制】5.List链表类型介绍和操作
- 【Redis缓存机制】5.List链表类型介绍和操作
- jedis 操作redis (java 缓存机制)
- 【php基础班】第12天 网页对象介绍、对象深入讲解、事件、定时器
- MapReduce过程详解及其性能优化
- String,StringBuffer与StringBuilder的区别??
- github使用
- NVL和NVL2有什么区别,NULLIF 的使用
- 【Redis缓存机制】7.SortSet排序集合类型操作
- Android学习七 BroadcastReceiver广播接收者
- 系统广播的action
- 防止快速连续点击按钮重复提交数据之一(自定义方法实现)
- windows下编译最新x264
- Python 列表
- 数据结构一(单链表)
- Ubuntu 查看系统版本、位数 指令
- python脚本设置微信自动回复[简单应用]