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" ...
随机推荐
- .Net 分布式云平台基础服务建设说明概要
1) 背景 建设云平台的基础框架,用于支持各类云服务的业务的构建及发展. 2) 基础服务 根据目前对业务的理解和发展方向,总结抽象出以下几个基础服务,如图所示 3) 概要说明 基础服务的发展会根 ...
- 使用RequireJS并实现一个自己的模块加载器 (一)
RequireJS & SeaJS 在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题. JS项目中的依赖只有通过引入JS的顺 ...
- C# Entity Framework并发处理
原网站:C# Entity Framework并发处理 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NE ...
- CSS常见技巧
一.CSS Sprite(雪碧图|精灵图)指什么? 有什么作用? CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图像和背景图片合并到一张图片上,然后利 ...
- Android 扫描条形码(Zxing插件)
使用Android Studio 一.在build.gradle(Module:app)添加代码 下载,调用插件 1 apply plugin: 'com.android.application' ...
- Atitit.研发团队的管理原则---立长不立贤与按资排辈原则
Atitit.研发团队的管理原则---立长不立贤与按资排辈原则 1. 组织任命原则概述1 2. 历史的角度看,大部分组织使用的立长不立贤原则1 3. 论资排辈 立长不立贤原则1 3.1. 资格和辈分是 ...
- WINDOWS系统下MYSQL安装过程中的注意事项
1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...
- windows系统路径环境变量
当前系统盘符%systemdrive%或%HOMEDRIVE%C:\ 当前系统目录%systemroot%或%Windir%C:\WINDOWS 当前用户文件夹%UserProfile%或%HOMEP ...
- Python处理Excel表格
同事小王今天说他有一个Excel表格,表格如下,一列是姓名,一列是电话号码,总共有大概2000行数据. 有的姓名占了一行,有的占了两行,还有一些占了三行的.如下图: 他问我可不可以全部统一成一行,而且 ...
- eclipse,myeclipse 误删文件,回滚历史文件操作
昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...