007 redis数据结构(四)-Zset

有序集合有两种内部编码方式:ziplistskiplist

ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。 如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置.

XX: 仅仅更新存在的成员,不添加新成员。

NX: 不更新存在的成员。只添加新成员

CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数

INCR: ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作

ZREM key member [member ...]删除名称为key的zset中的元素member

ZINCRBY key increment member 为有序集key的成员member的score值加上增量increment

-------------------------------------------------------------------------------------------------------------------------------------------------------------

127.0.0.1:10179> zadd zset1 10 a 20 b 50 c
(integer) 3
127.0.0.1:10179> type zset1
zset
127.0.0.1:10179> object encoding zset1
"ziplist"
127.0.0.1:10179> zadd zset1 10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 20 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 60 ffffffffffffffffffffffffffffffffffffff
(integer) 3
127.0.0.1:10179> type zset1
zset
127.0.0.1:10179> object encoding zset1
"skiplist"

 

127.0.0.1:10179> zadd zset1 xx 70 bb 100 dd
(integer) 0
127.0.0.1:10179> ZRANGEBYSCORE zset1 0 10000
1) "a"
2) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
3) "b"
4) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
5) "c"
6) "ffffffffffffffffffffffffffffffffffffff"
127.0.0.1:10179> zadd zset1 nx 70 bb 100 dd
(integer) 2
127.0.0.1:10179> ZRANGEBYSCORE zset1 0 10000
1) "a"
2) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
3) "b"
4) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
5) "c"
6) "ffffffffffffffffffffffffffffffffffffff"
7) "bb"
8) "dd"

 

127.0.0.1:10179> ZRANGEBYSCORE zset1 0 1000 withscores
 1) "a"
 2) "10"
 3) "b"
 4) "20"
 5) "c"
 6) "50"
 7) "bb"
 8) "70"
 9) "dd"
10) "100"
127.0.0.1:10179> ZINCRBY zset1 10 a
"20"
127.0.0.1:10179> ZRANGEBYSCORE zset1 0 1000 withscores
 1) "a"
 2) "20"
 3) "b"
 4) "20"
 5) "c"
 6) "50"
 7) "bb"
 8) "70"
 9) "dd"
10) "100"
 

127.0.0.1:10179> ZREM zset1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
(integer) 1
127.0.0.1:10179> ZREM zset1 ffffffffffffffffffffffffffffffffffffff
(integer) 1
127.0.0.1:10179> ZRANGEBYSCORE zset1 0 10000
1) "a"
2) "b"
3) "c"
4) "bb"
5) "dd"
127.0.0.1:10179> object encoding zset1
"skiplist"
-------------------------------------------------------------------------------------------------------------------------------------------------------------ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的

ZREMRANGEBYRANK key start stop 移除有序集key中,指定排名(rank)区间内的所有成员。下标参数startstop都以0为底,0处是分数最小的那个元素

ZRANK key member 返回有序集key中成员member的排名,从小到大。

ZREVRANK key member 返回有序集key中成员member的排名,其中有序集成员按score值从大到小排列。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 找到指定区间范围的数据进行返回

COUNT key min max 返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员个数。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

127.0.0.1:10179> ZREMRANGEBYSCORE  zset1 1 20
(integer) 2
127.0.0.1:10179> ZRANGEBYSCORE zset1 0 1000 withscores
1) "c"
2) "50"
3) "bb"
4) "70"
5) "dd"
6) "100"
127.0.0.1:10179>

 

127.0.0.1:10179> ZCOUNT zset1 0 1000
(integer) 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值