Redis Set和ZSet常用命令

Posted 昂迪梵德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis Set和ZSet常用命令相关的知识,希望对你有一定的参考价值。

Redis Set和ZSet常用命令

Set

1. SADD :添加多个元素到集合中
127.0.0.1:6379> sadd goodfood "potato" "tomato" "apple"
(integer) 3
2. SMOVE 命令:移动集合元素到另一个集合中
smove source destination member
3. SUNIONSTORE 命令:保存多个集合元素到新集合中
127.0.0.1:6379> sunionstore foods goodfood
(integer) 3
4. SISMEMBER 命令:判断某个元素是否在集合中
5. SCARD 命令:获取集合中元素的数量
6. SMEMBERS 命令:获取集合中的所有元素
7. SRANDMEMBER 命令:随机获取集合中的一个元素
8. SUNION 命令:获取多个集合中的所有元素
127.0.0.1:6379> sunionstore foods goodfood
(integer) 3
127.0.0.1:6379> sismember foods "apple"
(integer) 1
127.0.0.1:6379> scard foods
(integer) 3
127.0.0.1:6379> smembers foods
1) "apple"
2) "tomato"
3) "potato"
127.0.0.1:6379> srandmember foods
"apple"
127.0.0.1:6379> srandmember foods 2
1) "apple"
2) "potato"
127.0.0.1:6379> sunion foods goodfood
1) "apple"
2) "tomato"
3) "potato"
9. SDIFF 命令:获取多个集合元素的差集
127.0.0.1:6379> sdiff foods goodfood
(empty list or set)
10. SDIFFSTORE 命令:获取多个集合差集的元素个数(返回新集合difffood)
127.0.0.1:6379> sdiffstore difffood foods goodfood
(integer) 0
11. SINTER 命令:获取多个集合元素的交集
127.0.0.1:6379> sinter foods goodfood
1) "apple"
2) "tomato"
3) "potato"
12. SINTERSTORE 命令:获取多个集合交集的元素个数(返回新集合newfood)
127.0.0.1:6379> sinterstore newfood foods goodfood
(integer) 3
13. SPOP 命令:随机删除集合中的元素
14. SREM 命令:删除集合中的多个元素
127.0.0.1:6379> spop foods
"potato"
127.0.0.1:6379> srem foods "apple"
(integer) 1

ZSet

1. ZADD : 添加多个元素到有序集合中
127.0.0.1:6379> zadd city:gdp 95 "beijing" 99.5 "shanghai" 98 "guangzhou"
(integer) 3
2. ZINCRBY 命令:为分数值加上增量
127.0.0.1:6379> zincrby city:gdp 3 "beijing"
"98"
3. ZCARD 命令:获取有序集合中的元素数量
4. ZCOUNT 命令:获取在分数区间内的元素数量
127.0.0.1:6379> zcard city:gdp
(integer) 3
127.0.0.1:6379> zcount city:gdp 99 100
(integer) 1
5. ZLEXCOUNT 命令:获取在指定区间内的元素数量

ZLEXCOUNT 命令用于获取有序集合 key 中介于 min 和 max 范围内的元素数量,这个有序集合 key 中的所有元素的 score 值都相等。

参数 min 和 max 是一个区间,区间一般使用「(」或「[」表示,其中,「(」表示开区间,「(」指定的值不会被包含在范围之内;「[」表示闭区间,「[」指定的值会被包含在范围之内。另外,特殊值 + 和-在参数 min 和 max 中具有特殊含义,其中,+ 表示正无穷,-表示负无穷。我们向一个元素分数相同的有序集合发送命令 ZLEXCOUNT<zset>-+,将会返回这个有序集合中的所有元素。

6. ZRANGE 命令:获取在指定区间内的元素(升序)
127.0.0.1:6379> zrange city:gdp 0 -1
1) "beijing"
2) "guangzhou"
3) "shanghai"
7. ZREVRANGE 命令:获取在指定区间内的元素(降序)
8. ZSCORE 命令:获取元素的分数值
127.0.0.1:6379> zscore city:gdp "beijing"
"98"
9. ZRANGEBYLEX 命令:获取集合在指定范围内的元素

ZRANGEBYLEX 命令用于返回有序集合 key 中,元素 score 值介于 min 和 max 之间的元素,这个有序集合 key 中的所有元素具有相同的 score 值,它们按照字典序排序。如果有序集合 key 中的元素对应的 score 值不同,则在执行该命令后,返回的结果是未指定的(unspecified)。

可选的 LIMIT offset count 参数用于获取指定范围内的匹配元素。此时,需要注意,如果 offset 参数的值非常大,那么该命令在返回结果之前,需要先遍历到 offset 所指定的位置。

参数 min 和 max 是一个区间,区间一般使用「(」或「[」表示,其中,「(」表示开区间,「(」指定的值不会被包含在范围之内;「[」表示闭区间,「[」指定的值会被包含在范围之内。另外,特殊值 + 和-在参数 min 和 max 中具有特殊含义,其中,+ 表示正无穷,-表示负无穷。我们向一个元素分数相同的有序集合发送命令 ZRANGEBYLEX<zset>-+,将会返回这个有序集合中的所有元素。

10. ZRANGEBYSCORE 命令:获取在指定分数区间内的元素
127.0.0.1:6379> ZRANGEBYSCORE  city:gdp 0 100
1) "beijing"
2) "guangzhou"
3) "shanghai"
11. ZREVRANGEBYSCORE 命令:获取在指定区间内的所有元素

RANGEBYSCORE 命令用于返回有序集合 key 中,所有 score 值介于 min 和 max 之间(包含等于 min 和 max)的元素。有序集合 key 中的元素按照 score 值从小到大的顺序排序。当你不知道 min 和 max 参数的具体值时,可以使用-inf 来表示 min 值,使用 +inf 来表示 max 值。在默认情况下,min 与 max 区间是闭区间(小于等于或大于等于),也可以在参数前面添加「(」符号来使用可选的开区间(小于或大于)。

当具有相同 score 值的元素时,有序集合元素会按照字典序排序。

使用 WITHSCORES 选项来返回元素的 score 值。

可选的 LIMIT offset count 参数用于获取指定范围内的匹配元素。如果 offset 参数的值非常大,那么该命令在返回结果之前,需要先遍历到 offset 所指定的位置。

12. ZRANK 命令:获取有序集合元素的排名
13. ZREVRANK 命令:获取有序集合元素的倒序排名
127.0.0.1:6379> zrank city:gdp "shanghai"
(integer) 2
14. ZINTERSTORE 命令:保存多个有序集合的交集
15. ZUNIONSTORE 命令:保存多个有序集合的并集
16.ZREM 命令:删除有序集合中的多个元素
127.0.0.1:6379> zrem city:gdp "shanghai"
(integer) 1
17.ZREMRANGEBYLEX 命令:删除有序集合在指定区间内的元素
18. ZREMRANGEBYRANK 命令:删除有序集合在指定排名区间内的元素
19. ZREMRANGEBYSCORE 命令:删除有序集合在指定分数区间内的元素

以上是关于Redis Set和ZSet常用命令的主要内容,如果未能解决你的问题,请参考以下文章

redis set zset key 常用命令

Redis—列表(List)集合(Set)哈希(Hash)有序集合 Zset

redis 操作zset 有序集合常用命令

redis 五种数据结构常用操作命令详解(String,list,set,zset,hash)

Redis基础认识内存式NoSQL数据库及简单使用Redis

Redis基础认识内存式NoSQL数据库及简单使用Redis