redis渐入佳境(05) zset类型

Zset就是有序集合,除了集合的特性外还对每一个集合元素添加了一个顺序的属性,

ZADD方法使用具体如下:ZADD 集合名  序号  集合元素

ZRAGE方法的使用具体如下:ZRANGE 集合名 开始位置 结束位置 [withscores]  //withscores 是指的是否显示序号

redis 127.0.0.1:6379>
redis 127.0.0.1:6379> ZADD zset1 0 xue //添加一个元素并指定序号
(integer) 1
redis 127.0.0.1:6379> ZADD zset1 1 lian
(integer) 1
redis 127.0.0.1:6379> ZADD zset1 2 bo 3 bo//一次添加多个元素并指定序号
(integer) 1
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "xue"
2) "0"
3) "lian"
4) "1"
5) "twoe"
6) "2"
7) "bo"
8) "3"
redis 127.0.0.1:6379> ZADD zset1 2 bo //重复添加会返回0
(integer) 0
redis 127.0.0.1:6379>
[redies@localhost redis-2.4]$

ZCARD命令,显示集合中的元素个数

ZCOUNT命令,显示集合中指定的序号范围内的元素的个数

redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
1) "xue"
2) "0"
3) "lian"
4) "1"
5) "bo"
6) "2"
redis 127.0.0.1:6379> ZCARD zset1 //显示元素的个数
(integer) 3
redis 127.0.0.1:6379> ZCOUNT zset1 1 2//显示序号范围内的元素个数
(integer) 2

为元素的序号进行自增:ZINCRBY

redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
1) "xue"
2) "0"
3) "lian"
4) "1"
5) "bo"
6) "2"
redis 127.0.0.1:6379> zincrby zset1 5 xue //对元素 xue 的序号进行自增5
"5"
redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
1) "lian"
2) "1"
3) "bo"
4) "2"
5) "xue"
6) "5"
redis 127.0.0.1:6379>

ZREVRANGE 倒序显示元素

ZRANGEBYSCORE 根据序号的范围显示元素

ZRANK 显示某个元素在集合中位置根据序号

ZREVRANK 反向

redis 127.0.0.1:6379> ZREVRANGE zset1 0 -1 withscores
1) "xue"
2) "5"
3) "bo"
4) "2"
5) "lian"
6) "1"
redis 127.0.0.1:6379> ZRANGEBYSCORE zset1 5 5
1) "xue"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> ZRANK zset1 xue
(integer) 2
redis 127.0.0.1:6379> ZREVRANK zset1 xue
(integer) 0
redis 127.0.0.1:6379>

ZREM 删除元素

redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
 1) "xue"
 2) "0"
 3) "lian"
 4) "1"
 5) "bo"
 6) "2"
 7) "is"
 8) "3"
 9) "a"
10) "4"
11) "good"
12) "5"
13) "man"
14) "6"
15) "."
16) "7"
redis 127.0.0.1:6379> zrem zset1 xue lian bo
(integer) 3
redis 127.0.0.1:6379>

删除指定范围内的元素:ZREMRANGEBYRANK

redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
 1) "is"
 2) "3"
 3) "a"
 4) "4"
 5) "good"
 6) "5"
 7) "man"
 8) "6"
 9) "."
10) "7"
redis 127.0.0.1:6379> ZREMRANGEBYRANK zset1 0 1
(integer) 2
redis 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
1) "good"
2) "5"
3) "man"
4) "6"
5) "."
6) "7"
redis 127.0.0.1:6379>

删除指定的序号范围内的元素:ZREMRANGEBYSCORE

redis 127.0.0.1:6379> ZRANGE zset1 0 -1  withscores
 1) "xue"
 2) "0"
 3) "lian"
 4) "1"
 5) "bo"
 6) "2"
 7) "is"
 8) "3"
 9) "a"
10) "4"
11) "good"
12) "5"
13) "man"
14) "6"
15) "."
16) "7"
redis 127.0.0.1:6379> ZREMRANGEBYSCORE zset1 5 6
(integer) 2
redis 127.0.0.1:6379> ZRANGE zset1 0 -1  withscores
 1) "xue"
 2) "0"
 3) "lian"
 4) "1"
 5) "bo"
 6) "2"
 7) "is"
 8) "3"
 9) "a"
10) "4"
11) "."
12) "7"
redis 127.0.0.1:6379>

显示元素的序号:ZSCORE

redis 127.0.0.1:6379> ZSCORE zset1 xue
"0"
redis 127.0.0.1:6379> ZSCORE zset1 lian
"1"
redis 127.0.0.1:6379>

并集并存储到第三个集合中:ZUNIONSTORE

redis 127.0.0.1:6379> ZRANGE zset1 0 -1
1) "a"
2) "b"
3) "c"
redis 127.0.0.1:6379> ZRANGE zset2 0 -1
1) "d"
2) "e"
3) "f"
redis 127.0.0.1:6379> ZUNIONSTORE zset3 2 zset1 zset2
(integer) 6
redis 127.0.0.1:6379> ZRANGE zset3 0 -1 withscores
 1) "a"
 2) "0"
 3) "b"
 4) "2"
 5) "d"
 6) "3"
 7) "c"
 8) "4"
 9) "e"
10) "4"
11) "f"
12) "5"
redis 127.0.0.1:6379>

交集并存入到四三个集合中

redis 127.0.0.1:6379> ZRANGE zset2 0 -1
1) "d"
2) "e"
3) "f"
redis 127.0.0.1:6379> ZRANGE zset3 0 -1
1) "a"
2) "b"
3) "d"
4) "c"
5) "e"
6) "f"
redis 127.0.0.1:6379> ZINTERSTORE zset4 2 zset2 zset3
(integer) 3
redis 127.0.0.1:6379> ZRANGE zset4 0 -1
1) "d"
2) "e"
3) "f"
redis 127.0.0.1:6379>

猜你喜欢

转载自xuelianbobo.iteye.com/blog/2088247