博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis(3-5):有序集合类型
阅读量:6003 次
发布时间:2019-06-20

本文共 948 字,大约阅读时间需要 3 分钟。

hot3.png

有序集合类型(sorted set)在集合类型的基础上为集合中的每个元素都关联了一个分数,使得我们不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高(或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。

虽然集合中每个元素都是不同的,但是它们的分数却可以相同。

有序集合类型和列表类型的相似点

  1. 二者都是有序的
  2. 二者都可以获得某一范围的元素

有序集合类型和列表类型的不同点,使得它们的应用场景也是不同的:

  1. 列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元素的应用。
  2. 有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
  3. 列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
  4. 有序集合要比列表类型更耗费内存。
命令 举例 说明
ZADD key score member [score member ... ] 增加元素
ZSCORE key member 获得元素的分数
ZRANGE/ZREVRANGE key start stop [WITHSCORES] 获得排名在某个范围的元素列表
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

获得指定分数范围的元素
ZINCRBY key increment member 增加某个元素的分数
ZCARD key 获得集合中元素的数量
ZCOUNT key min max 获得指定分数范围内的元素个数
ZREM key member [member ... ] 删除一个或多个元素
ZREMRANGEBYBANK key start stop 按照排名范围删除元素
ZREMRANGEBYSCORE key min max 按照分数范围删除元素
ZRANK/ZREVRANK key member 获得元素的排名

 

转载于:https://my.oschina.net/u/2914561/blog/881616

你可能感兴趣的文章
How To: 用 SharePoint 计算列做出你自己的KPI列表
查看>>
Visual Studio下使用jQuery的10个技巧
查看>>
web服务器工作原理及http协议通信
查看>>
数据库查询某个字段值的位数 语法
查看>>
java file 文件操作 operate file of java
查看>>
WPF获取路径解读
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
Android : 如何在WebView显示的页面中查找内容
查看>>
数字信号处理 基础知识 对比回顾
查看>>
分享个人Vim型材
查看>>
配置算法(第4版)的Java编译环境
查看>>
本学习笔记TCP/IP传输协议
查看>>
荣耀10GT升级EMUI 9.0体验分享:这可能是最好用的手机操作系统
查看>>
ZStack基于华芯通打造ARM国产云平台 助力云上贵州多项应用
查看>>
200本“保护日记”记录黄山迎客松生长变化
查看>>
多方力量携手呵护“中华水塔”青海三江源
查看>>
互联网的下一波红利在哪里?
查看>>
拿姐姐身份证登记结婚竟然成了!婚姻户籍信息共享难在哪儿
查看>>
恒大造车加速,联手柯尼塞格打造顶级新能源车
查看>>
JAVA大神说一个例子让你几分钟学会Annotation
查看>>