redis:order set有序集合类型的操作(有序集合)
1. order set有序集合类型的操作(有序集合)
有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据)
1.1. zadd key [NX|XX] [CH] [INCR] score member [score member ...]
语法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
作用:添加元素
例:
127.0.0.1:6379> zadd age 21 lily 22 tom 19 poly 15 wang
(integer) 4
1.2. zrange key start stop [WITHSCORES]
语法:zrange key start stop [WITHSCORES]
作用:把集合排序后(默认是升序排列),返回排序名次[start,stop]的元素(排序名次从0开始)
Withscores 是把score也打印出来
注:zrange key 0 -1 #返回所有排序的元素,默认升序
例:
127.0.0.1:6379> zadd age 21 lily 22 tom 19 poly 15 wang
(integer) 4
127.0.0.1:6379> zrange age 0 2
1) "wang"
2) "poly"
3) "lily"
127.0.0.1:6379> zrange age 0 -1 #查询所有的元素,默认升序
1) "wang"
2) "poly"
3) "lily"
4) "tom"
127.0.0.1:6379> zrange age 0 2 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
127.0.0.1:6379> zrange age 0 -1 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
1.3. zrevrange key start stop [WITHSCORES]
语法:zrevrange key start stop [WITHSCORES]
作用:把集合降序排列,取排序名次[start,stop]之间的元素
例:
127.0.0.1:6379> zadd age 20 li 22 wu 25 wang 30 zhao
(integer) 4
127.0.0.1:6379> zrevrange age 0 -1 withscores
1) "zhao"
2) "30"
3) "wang"
4) "25"
5) "wu"
6) "22"
7) "li"
8) "20"
127.0.0.1:6379> zrevrange age 1 2 withscores
1) "wang"
2) "25"
3) "wu"
4) "22"
1.4. zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
作用:集合(升序)排序后,取score在[min,max]内的元素,并跳过offset个,取出count个
例:
127.0.0.1:6379> zrangebyscore age 14 20
1) "wang"
2) "poly"
127.0.0.1:6379> zrangebyscore age 14 20
1) "wang"
2) "poly"
127.0.0.1:6379> zrangebyscore age 14 20 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
127.0.0.1:6379> zrangebyscore age 14 20 withscores limit 1 2
1) "poly"
2) "19"
127.0.0.1:6379> zrangebyscore age 14 22 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
127.0.0.1:6379> zrangebyscore age 14 22 withscores limit 1 2
1) "poly"
2) "19"
3) "lily"
4) "21"
1.5. zrank key member
语法:zrank key member
作用:查询member的排名(升序,从 0名开始)
返回值:存在返回member的排名(升序,从0开始);不存在返回nil
例:
127.0.0.1:6379> zrange age 0 -1 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
127.0.0.1:6379> zrank age poly
(integer) 1
127.0.0.1:6379> zrank age wang
(integer) 0
127.0.0.1:6379> zrank age tom
(integer) 3
127.0.0.1:6379> zrank age haha
(nil)
1.6. zrevrank key member
语法:zrevrank key member
作用:查询member的排名(降序,从0名开始)
返回值:存在返回member的排名(降序,从0开始);不存在返回nil
例:
127.0.0.1:6379> zrevrank age wang
(integer) 3
127.0.0.1:6379> zrevrank age poly
(integer) 2
127.0.0.1:6379> zrevrank age tom
(integer) 0
1.7. zrem key member [member ...]
语法:zrem key member [member ...]
作用:删除集合中的元素member [member ...]
返回值:返回真正删除掉的元素的个数
例:
127.0.0.1:6379> zrange age 0 -1 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
127.0.0.1:6379> zrem age wang
(integer) 1
127.0.0.1:6379> zrange age 0 -1 withscores
1) "poly"
2) "19"
3) "lily"
4) "21"
5) "tom"
6) "22"
127.0.0.1:6379> zrem age poly lily haha
(integer) 2
127.0.0.1:6379> zrange age 0 -1 withscores
1) "tom"
2) "22"
1.8. zremrangebyscore key min max
语法:zremrangebyscore key min max
作用:按照score来删除元素,删除score在[min,max]之间的元素
返回值:返回真正删除元素的个数
例:
127.0.0.1:6379> zrange age 0 -1 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
127.0.0.1:6379> zremrangebyscore age 15 20
(integer) 2
127.0.0.1:6379> zrange age 0 -1 withscores
1) "lily"
2) "21"
3) "tom"
4) "22"
1.9. zremrangebyrank key start stop
语法:zremrangebyrank key start stop
作用:按排名删除元素,删除名次在[start,end]之间的元素(默认升序)
返回值:返回真正删除元素的个数
例:
127.0.0.1:6379> zrange age 0 -1 withscores
1) "wang"
2) "15"
3) "poly"
4) "19"
5) "lily"
6) "21"
7) "tom"
8) "22"
127.0.0.1:6379> zremrangebyrank age 0 1
(integer) 2
127.0.0.1:6379> zrange age 0 -1 withscores
1) "lily"
2) "21"
3) "tom"
4) "22"
1.10. zcard key
语法:zcard key
作用:返回集合中所有元素的个数
例:
127.0.0.1:6379> zadd age 20 li 22 wu 25 wang 30 zhao
(integer) 4
127.0.0.1:6379> zcard age
(integer) 4
redis:order set有序集合类型的操作(有序集合)的更多相关文章
- redis:set集合类型的操作(无序集合)
1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...
- Python集合类型的操作与应用
Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...
- Redis的数据类型以及各类型的操作
讲完安装和配置,接下来就是所有数据库的重头戏,数据结构和常用操作的增删改查了 redis是key-value的数据结构,每条数据都是⼀个键值对 键的类型是字符串 注意:键不能重复 值的类型分为五种: ...
- redis数据类型:sorted sets类型及操作
sorted sets类型及操作: sorted set是set的一个升级版本,它是在set的基础上增加了一个顺序 属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会 自动重新按新的值 ...
- c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)
1.foreach[对一些数组或集合进行遍历] foreach(类型 变量名 in 集合对象){语句体} //定义一个数组 ,,,,, }; foreach(var i in sNum1) { Con ...
- [Swift]遍历集合类型(数组、集合和字典)
Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值集合. 数组是有序的值集合. 集是唯一值的无序集合. 字典是键值关联的无序集合. Swift中无法再使用传统形式的for循环. // ...
- Python(Redis 中 String/List/Hash 类型数据操作)
1.下载 redis 模块 pip install redis 2.redis 数据库两种连接方式 简单连接 decode_responses=True,写入和读取的键值对中的 value 为 str ...
- json 当集合类型的字符串变成集合时候 里面有map类型的转换操作
- Scala中集合类型与java中集合类型转换
对于java中的集合元素并不能在scala中拿来就用的,需要进行相应的转换. 1. 转换规则如下 从下面可以看出,有些可以相互转换的,有些只能单向转换: scala.collection.Iterab ...
随机推荐
- 有道词典Linux版下载安装
http://cidian.youdao.com/index-linux.html Ubuntu http://codown.youdao.com/cidian/linux/youdao-dict_1 ...
- 解决win7 安装完jdk7后,再安装jdk8出现的问题 has value '1.8', but '1.7' is required.
http://blog.csdn.net/qiyueqinglian/article/details/46605759 电脑装了jdk8,JAVA_HOME也是设置的8. 不删除8变回7. 改了JAV ...
- JMeter性能测试,验证请求数据的准确性(wc命令)
wc: 该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取. wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. - c 统计字节数. - l 统计行 ...
- Selenium自动化测试框架的搭建
说 起自动化测试,我想大家都会有个疑问,要不要做自动化测试? 自动化测试给我们带来的收益是否会超出在建设时所投入的成本,这个嘛别说是我,即便是高手也很难回答,自动化测试的初衷是美好的,而测 ...
- 移动端1px问题
.component-confirm__buttons { border-top: 1px solid #eceef0; box-shadow: 0 1px 1px #fff; } 造成边框变粗的原因 ...
- 001_ajax学习
1,XMLHttpRequest 2,window.ActioveXObject(ie浏览器) 3,new ActiveXObject("Microsoft.XMLHTTP") 4 ...
- 【目录】《剑指Offer》Java实现
如题: 1) 找出数组中重复的数字 2) 不修改数组找出重复的数字 3) 二维数组中的查找 4) 替换空格 5) 从尾到头打印链表 6) 重建二叉树 7) 二叉树的下一个结点 8) 用两个栈实现队列 ...
- Hudson与Jenkins
Hudson是Jenkins的前身,它们都是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1 ...
- Git submodule 仓库中包含另外的仓库(子仓库)
Git submodule 仓库中包含另外的仓库(子仓库) 添加 submodule 在父仓库 git 目录下: git submodule add ssh://ip/[path]/xxx.git 注 ...
- springmvc接受前端的参数封装成对象
前端如果传过来的是json格式的字符串,后台参数需要加@RequestBody注解. 前端如果传过来的是json对象,后台不参数需要加@RequestBody注解. $.POST({ url: url ...