Redis命令拾遗五(有序集合)
本文版权归博客园和作者吴双本人共同所有,博客园蜗牛NoSql系列分享 http://www.cnblogs.com/tdws/tag/NoSql/
有序集合—Sorted Set是我最后要分享的一种Redis数据类型,有序集合在集合的基础上,为每一个元素,关联了一个分数的概念(Score)。不要忘了,集合中元素是唯一的,但是有序集合中的Score是可以相同的。
下面通过命令的介绍,来帮助大家认识有序集合。
添加命令,ZADD key score member score member....注意分数是在前面哟。并且成功后返回成功数量。如果你同时添加两个相同元素,并且分数不同,那么被存入的,是后者。
获取元素,ZRANGE key start stop.在有序集合中,元素以score由小到大排序,并且索引从0开始。获取全部,0 -1(最后面的元素索引是-1),和列表一样,start索引要大于stop索引才能获取到元素。另外还有一个可选参数,WithScores,会相应的输出元素的分数。
另外还有ZRevRange,按照score从大到小的顺序输出。
Score支持双精度浮点数。


ZRangeByScore和ZRevRangeByScore。前者按照分数由小到大,并且给定分数范围,withScores是可选参数。limit也是可选参数,索引从0开始。后者则是由大到小。


另外需要特别注意的一点是,分数的筛选支持正无穷,和不包含‘(’符号。我们看到结果中,并没有95分的LeiJun。并且到正无穷。

ZSCORE,获取指定key中指定元素的score。

ZInctBy ,为指定键下的指定Member,增加指定的 分数。我们给LeiJun增加了10分,返回105了。

ZCARD,获取键下元素个数。我们看到有七个学生哈。

ZCOUNT ,获取制定分数区间,元素个数,注意分数筛选,也支持‘(’不包含选择符。

ZREM,移除元素。

ZRemRangeByScore,按照分数范围删除多个元素。
ZRemRangeByRank,按照正常由小到大的排名顺序删除,又有两个分数低的被删掉了。

ZRANK,获取指定元素的排名。从0开始。ZRevRank则相反

不足之处,欢迎补充和交流。
最后再简单总结有序集合和列表。有序集合和列表都是有序的,并且可以按照范围来获取元素。
列表通过链表来实现,获取靠近两端的数据速度很快,当数据量比较大的时候,获取中间的元素相应会变慢,比如你微信的朋友圈,大多使人看的都是这几天,最多也不过近几天的数据。中间元素很少会访问。
而有序集合使用跳跃表和散列表实现,其时间复杂度O(log(N)),所以取中间元素也很快。并且有序集合可以通过更改分数,来调整元素的位置。有序集合也更耗费内存。
Redis命令拾遗五(有序集合)的更多相关文章
- Redis命令拾遗四(集合类型)—包含简单搜索筛选商品设计实例。
本文版权,归博客园和作者吴双共同所有.转载和爬虫请注明博客园蜗牛Redis系列文章地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis数据类型之集合(Set) ...
- redis 学习(7) -- 有序集合
redis 学习(7) -- 有序集合 zset 结构 有序集合:有序.不能包含重复元素 每个节点包含:score和value两个属性,根据score进行排序 如图: zset 重要 API 含义 命 ...
- Redis命令拾遗二(散列类型)
本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...
- Redis的Sorted Set有序集合命令
Sorted Set是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表, ...
- Redis命令拾遗一(字符串类型)
文章归博客园和作者“蜗牛”共同所有 .转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/ Redis有五种基本数据类型.他们分别是字符 ...
- 15天玩转redis —— 第六篇 有序集合类型
今天我们说一下Redis中最后一个数据类型 “有序集合类型”,回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这 些代码的好心人真的要一生平安哈,不管我们想没想的到的东西,在这个 ...
- Redis sorted set(有序集合)
Redis 有序集合是string类型元素的集合,元素不允许重复. 有序集合中的每个元素都会关联一个数值型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序集合的成员是唯一的(不 ...
- Redis之Sorted Set 有序集合
Redis Sorted Set 有序集合 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分 ...
- lunix下的redis数据库操作——zset有序集合
创建:(有序集合存在一个权重的概念) zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g # 输出: # 1) "a" # 2) "b" ...
随机推荐
- Hawk 5.1 数据导入和导出
除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...
- H5程序员如何利用cordova开发跨平台应用
什么是Cordova? Cordova以前也叫PhoneGap,它提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还 ...
- 数据图表插件Echarts(一)
一.引言 最近做一个智慧城市项目,项目中需要图表和报表进行数据分析,从网上找了很多,最后找到了百度开放的echarts,一个很强大的插件. 二.介绍 ECharts,缩写来自Enterprise Ch ...
- PHP好用但又容易忽略的小知识
1.PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在.同样的method_ ...
- Entity Framework 延伸系列目录
1.采用MiniProfiler监控EF与.NET MVC项目 2.采用EntityFramework.Extended 对EF进行扩展 3.EntityFramework执行存储过程中遇到的那些坑 ...
- Android SDK 在线更新镜像服务器资源
本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...
- 最近在玩linux时 yum 遇到了问题
主要是软件源出现了问题 我做的方式可能比较粗暴 ls -l /etc/yum.repos.d/ /*查看软件源*/ rm -rf /etc/yum.repos.d/ /*全删了*/ m ...
- 简单Linux命令学习笔记
1.查看进程 ps -ef | grep 关键字 /*关键字为服务名*/ netstat -unltp | grep 关键字 /*关键字为服务名或者是端口均可*/ 2.杀死进 ...
- 一键生成APP官网
只需要输入苹果下载地址,安卓市场下载地址,或者内测下载地址,就能一键生成APP的官网,方便在网上推广. 好推APP官网 www.hotapp.cn/app
- C++右值引用浅析
一直想试着把自己理解和学习到的右值引用相关的技术细节整理并分享出来,希望能够对感兴趣的朋友提供帮助. 右值引用是C++11标准中新增的一个特性.右值引用允许程序员可以忽略逻辑上不需要的拷贝:而且还可以 ...