Redis数据类型:Sorted Sets操作指令

Sorted Sets常用操作指令

Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score,用于排序。

ZADD

将指定的元素及Score添加到集合。如果集合中存在该元素,则更新其Score。 如果集合不存在,会先创建一个集合然后在添加元素及Score。

127.0.0.1:6379> ZADD sortset 1 name
(integer) 1

ZRANGE

返回指定下标开始到结束下标之间的元素信息,如果使用了WITHSCORES,则将元素的Score信息一起返回。

127.0.0.1:6379> ZRANGE sortset 0 -1
1) "name"
127.0.0.1:6379> ZRANGE sortset 0 -1 WITHSCORES
1) "name"
2) "1"

ZREVRANGE

和ZRANGE类似,只是顺序是反过来的。

127.0.0.1:6379> ZADD myset 1 one 3 three 5 five 10 ten
(integer) 2
127.0.0.1:6379> ZRANGE myset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"
5) "five"
6) "5"
7) "ten"
8) "10"
127.0.0.1:6379> ZREVRANGE myset 0 -1 WITHSCORES
1) "ten"
2) "10"
3) "five"
4) "5"
5) "three"
6) "3"
7) "one"
8) "1"

ZCARD

类似SCARD,返回集合中的元素个数。

# 统计集合中的元素个数
127.0.0.1:6379> ZCARD sortset
(integer) 1

ZSCORE

返回指定元素的SCORE值。

127.0.0.1:6379> ZSCORE sortset name
"1"

ZCOUNT

统计集合中Score在MIN 和MAX的元素个数。

127.0.0.1:6379> ZADD sset 100 beijing 80 shanghai 90 shenzhen
(integer) 3
127.0.0.1:6379> ZCOUNT sset 70 86
(integer) 1

ZINCRBY

增加指定元素的SCORE值,如果指定元素不存在,则初始化该元素,并根据参数赋予该元素的SCORE值。

# 元素存在 SOCRE值增加
127.0.0.1:6379> ZINCRBY sset 3 beijing
"103"
# 元素不存在 初始化SOCRE
127.0.0.1:6379> ZINCRBY sset 20 newyork
"20"
# WITHSCORES 一定要大写
127.0.0.1:6379> ZRANGE sset 0 -1 WITHSCORES
1) "newyork"
2) "20"
3) "shanghai"
4) "80"
5) "shenzhen"
6) "90"
7) "beijing"
8) "103"

ZINTERSTORE

返回集合间的交集并存储到指定的集合中。返回结合中的元素的CORE值是根据对比的集合自己具体元素的SCORE值的相加。

127.0.0.1:6379> ZRANGE sset 0 -1 WITHSCORES
1) "newyork"
2) "20"
3) "shanghai"
4) "80"
5) "shenzhen"
6) "90"
7) "beijing"
8) "103" 127.0.0.1:6379> ZADD sseta 100 beijing 200 nanjing 90 shenzhen
(integer) 3 127.0.0.1:6379> ZINTERSTORE ssetb 2 sset sseta
(integer) 2
# ZINTERSTORE 只比较元素,并相加SCORE
127.0.0.1:6379> ZRANGE ssetb 0 -1 WITHSCORES
1) "shenzhen"
2) "180"
3) "beijing"
4) "203" # 同时也可以加上参数WEIGHTS 作为乘法计算因子
127.0.0.1:6379> ZINTERSTORE ssetb 2 sset sseta WEIGHTS 2 3
(integer) 2
# beijing 506=103*2+100*3= 506
# shenzhen 450=90*2+90*3=450
127.0.0.1:6379> ZRANGE ssetb 0 -1 WITHSCORES
1) "shenzhen"
2) "450"
3) "beijing"
4) "506"

ZUNIONSTORE

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

返回集合间的并集并存储到指定的集合中。返回结合中的元素的CORE值是根据对比的集合自己具体元素的SCORE值的相加。

numkeys:表示的是比较集合的个数。

AGGREGATE:规则,默认是SCORE求和。

127.0.0.1:6379> zadd set1 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> ZADD set2 3 c 4 d
(integer) 2
#只比较元素,并相加SCORE
127.0.0.1:6379> ZUNIONSTORE set3 2 set1 set2
(integer) 4
#同时也可以加上参数WEIGHTS 作为乘法因子 默认为1
#C元素的SCORE为6=3*1+3*1=6
127.0.0.1:6379> ZRANGE set3 0 -1 WITHSCORES
1) "a"
2) "1"
3) "b"
4) "2"
5) "d"
6) "4"
7) "c"
8) "6"

ZRANK

返回集合中元素的排序位置。SOCRE是从小大升序排队。

127.0.0.1:6379> ZRANGE ssetb 0 -1 WITHSCORES
1) "shenzhen"
2) "450"
3) "beijing"
4) "506"
# 集合不存在 则返回nil
127.0.0.1:6379> ZRANK setb beijing
(nil)
# 升序排序 下标从0开始
127.0.0.1:6379> ZRANK ssetb beijing
(integer) 1
127.0.0.1:6379> ZRANK ssetb shenzhen
(integer) 0

ZREM

从集合中删除指定元素。删除成功返回元素个数,元素不存在时返回0。

127.0.0.1:6379> ZREM ssetb beijing
(integer) 1
127.0.0.1:6379> ZREM ssetb beijing2
(integer) 0

ZPOOMAX ZPOPMIN

​ 弹出元素中SCORE值最大或最小的元素及SCORE.。

127.0.0.1:6379> ZADD myset 1 one 3 three 5 five 10 ten
(integer) 4
# Count 表示一次弹出元素的个数。
127.0.0.1:6379> ZPOPMAX myset 1
1) "ten"
2) "10"
127.0.0.1:6379> ZPOPMin myset 1
1) "one"
2) "1"

ZSCAN

迭代集合中的元素,可以参考上一篇中的SCAN。

以上就是Redis中Scored Sets的常用操作指令了,更多其他指令可以参考官网,Redis官网,谢谢阅读,希望对你有所帮助。

Redis数据类型:Sorted Sets操作指令的更多相关文章

  1. Redis集合的常用操作指令

    Redis集合的常用操作指令 Sets常用操作指令 SADD 将指定的元素添加到集合.如果集合中存在该元素,则忽略. 如果集合不存在,会先创建一个集合然后在添加元素. 127.0.0.1:6379&g ...

  2. redis数据类型及订阅操作

    Redis数据类型详解 Redis键/值介绍 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如“foo”的简单字符串到一个JPG文件的内容都可以.空字符串也是有效k ...

  3. Redis 命令 - Sorted Sets

    ZADD key score member [score member ...] Add one or more members to a sorted set, or update its scor ...

  4. redis数据类型:sets

    sets类型及操作: set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加.删除和查找的复杂度都是O(1).对集合我们可以取并集.交集.差集. 通过这些操作我们 ...

  5. Redis数据类型之列表操作

    redis 目录: 1.自动分配(redis) - 批量导入 2.微信自动绑定 3.django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4.报表 公司每个月销售的业绩 5.权限 = ...

  6. redis数据类型:sorted sets类型及操作

    sorted sets类型及操作: sorted set是set的一个升级版本,它是在set的基础上增加了一个顺序 属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会 自动重新按新的值 ...

  7. redis的有序集合(Sorted Sets)数据类型

    和Sets相比,Sorted Sets增加了一个权重参数score,使得集合中的元素能够按score进行有序排列,比如一个存储全班同学成绩的Sorted Sets,其集合value可以是同学的学号,而 ...

  8. 缓存数据库-redis数据类型和操作(sorted set)

    一:Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是 ...

  9. redis 从0到1 linux下的安装使用 数据类型 以及操作指令 一

    安装 redis 到 /usr/目录下 我这里安装的是redis-3.2.9.tar.gz tar zxvf  redis-3.2.9.tar.gz  -C  /usr 然后进行 执行编译命令 mak ...

随机推荐

  1. 2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)

    题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI ...

  2. JS比较两个时间的时间差

    /** * 比较两个时间的时间差 * @param startTime 开始时间 * @param endTime 结束时间 * @demo compareTime(new Date('2019-12 ...

  3. 手写与copy

    m_Font.CreateFont( 14, // 字体高度 0 , // 宽度由系统确定 0 , // 文本不倾斜 0 , // 字体不倾斜 FW_NORMAL, // 字体粗度 0 , // 非斜 ...

  4. 六、ARM 寻址方式

    寻址方式是针对源操作数来说的 6.1 立即数寻址 源操作数是立即数 立即数:操作码以 # 号开头的数字为立即数 立即数寻址: MOV   R0, #0x300 伪指令:        LDR   R0 ...

  5. php 获取真实ip

    REMOTE_ADDR:是和服务器直接"握手"的IP. HTTP_CLIENT_IP:代理服务器添加的 HTTP 头,存放客户端真实IP. HTTP_X_FORWARDED_FOR ...

  6. 爱奇艺免费vip观看地址

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  7. C语言realpath

    表头文件:     #include <limits.h>     #include <stdlib.h> 函数原型:     char *realpath(const cha ...

  8. OCP内容

    安装 --网络 --存储 --用户 --对象 --ASM (包含前面的内容的复习)--内存管理 -- 备份 --闪回 -- 事务 --sql 编程

  9. 多对多关系表的创建方式、forms组件

    目录 多对多关系表的三种创建方式 1.全自动,Django自动创建 2.纯手撸 3.半自动(推荐使用) forms组件 小例子 forms组件 校验器 钩子函数 局部钩子 全局钩子 forms组件常用 ...

  10. springSecurity安全框架

    一.是什么 是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,对访问权限进行控制 二.作用 1.认证 用户名和密码认证,核对是否正确 2.授权 若正确,给予登录用户对应的访问权限 ...