Redis Zset类型详细使用

一、Zset的常用命令 

(一)ZADD:添加或更新元素

要是你想往Zset里加东西,或者更新一下已有的元素,那就用ZADD命令吧。分数必须是双精度浮点数,正无穷大(+inf)和负无穷大(-inf)也是可以的。

语法是这样的:

ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...]

• XX:只更新已经存在的元素,不会添加新的。

• NX:只添加新的元素,不会更新已有的。

• CH:默认情况下,ZADD返回的是添加的元素个数,但加上这个选项后,还会包含更新的元素个数。

• INCR:这时候命令就和ZINCRBY差不多了,会给元素的分数加上指定的分数,不过只能指定一个元素和分数。

时间复杂度是O(log(N)),返回值是添加成功的元素个数。

举个例子:

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"

(二)ZCARD:数数Zset里有多少元素

想知道Zset里有多少个元素?用ZCARD命令就行啦。它的时间复杂度是O(1),返回值就是Zset里的元素个数。

比如:

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2

(三)ZCOUNT:数数分数范围内的元素

ZCOUNT命令可以帮你数一数分数在某个范围内的元素有多少个。默认情况下,范围的上下限都是包含在内的,但你可以用(来排除某个边界。

语法是:

ZCOUNT key min max

时间复杂度是O(log(N)),返回值是满足条件的元素个数。

例如:

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZCOUNT myzset -inf +inf
(integer) 3
redis> ZCOUNT myzset (1 3
(integer) 2

(四)ZRANGE:按分数升序获取元素

如果你想按照分数从小到大的顺序获取Zset里的元素,那就用ZRANGE命令吧。还能带上WITHSCORES选项,把分数也一起返回。

语法:

ZRANGE key start stop [WITHSCORES]

时间复杂度是O(log(N)+M),返回值是区间内的元素列表。

例如:

redis> ZADD myzset 1 "one" 2 "two" 3 "three"
(integer) 3
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值