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

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官网,谢谢阅读,希望对你有所帮助。

原文地址:https://www.cnblogs.com/enjoyitlife/p/11951937.html

时间: 2024-11-05 19:38:06

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

redis之sorted sets类型及操作

sorted sets类型及操作 sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score.sorted set的实现是skip list和hash table的混合体.

redis 的安装使用 数据类型 以及操作指令 一

安装 redis 到 /usr/目录下 我这里安装的是redis-3.2.9.tar.gz tar zxvf  redis-3.2.9.tar.gz  -C  /usr 然后进行 执行编译命令 make   执行安装  make install 进入redis目录   ll查看所有文件 将 redis.conf文件 移动到usr/local/redis/etc目录下 再进入redis/src 目录 将以下文件移动到 usr/local/redis/bin目录下  方便以后管理 此时进入 usr/

Redis数据类型:Hashes、Geo操作指令

Redis数据类型:Hashes.Geo操作指令 Hashes常用操作指令 Redis Hashes是一个键值对的映射表,最对能存储2^32-1(约40亿)个键值对. HSET HGET HSET:将键值对存储到哈希表中,如果哈希表不存在,新建一个然后在将键值对存储进去. HGET: 根据Key值获取value. 127.0.0.1:6379> ZADD sortset 1 name (integer) 1 127.0.0.1:6379> HSET myhash name zhangsan (

redis数据类型操作

7.数据类型 set name zsj get name setnx name :不会覆盖原来的值,如果存在不更新,如果不存在择设置 setex:设置并指定有效期 setex haircolor 10 red :设置haircolor的有效时间为10秒 没有设置有效期代表永久有效 setrange name 6 gmail.com:从第六个字符开始替换成gmail.com[替换同等长度] mset key1 valus1 key2 value2:同时设置两个值 msetnx getset:获取旧

redis 操作指令集合

redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字符串,哈希结构,链表,集合,因

系统学习redis之七——redis数据类型之zset数据类型及操作

sourted sets数据类型介绍 sorted set是set的一个升级版本,他在set的基础上增加了一个顺序属性.这一属性在修改元素的时候可以指定,每次指定后,zset会自动按照新的值调整顺序,是有序集合.可以理解为有两列的MySQL表,一列存value,一列存顺序.操作中key理解为zset的名字. zset数据类型方法 zadd:向指定集合zset中添加元素member,score用于排序,如果该元素已经存在,则更新其顺序 zrange:查看sourted sets里面的所有元素 zr

Redis五大数据类型的常用操作

在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合). 原文地址:https://www.cnblogs.com/toutou/p/redis_data_type.html

Redis(2.8.3) 命令学习 - Sorted Sets

ZADD key score member [score member ...] Add one or more members to a sorted set, or update its score if it already exists 127.0.0.1:6379> ZADD foo 1 one (integer) 1 127.0.0.1:6379> ZADD foo 2 two (integer) 1 127.0.0.1:6379> ZADD foo 3 three (int

redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)

平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别 可参考:https://blog.csdn.net/yifanSJ/article/details/79513179 当然 springboot 中也可以使用Jedis ,本次记录的是 如何使用RedisTemplate