•有序集合有两种内部编码方式:ziplist和skiplist
•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的有序集合中的分数在min和max之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的
•ZREMRANGEBYRANK key start stop 移除有序集key中,指定排名(rank)区间内的所有成员。下标参数start和stop都以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
------------------------------------------------------------------------------------------------------------------------------------------------------------------