一、引言
今天晚上不加班,不加班,爽翻。不加班就能安安心心继续学习了,继续redis学习哈。今天学习redis五大数据类型最后一个了。上一章学习了Set无序集合,那么有无序集合肯定就会有有序集合了。Zset是Set集合的升级版,他在Set集合增加了一个顺序的属性,再往Zset集合中添加数据,需要加上该元素的顺序,每一次赋值Zset会重新按照顺序属性进行调整顺序。
废话不多说,开整吧!!
二、Zset数据类型常用命令
zadd:往集合中添加元素
127.0.0.1:6379> zadd myzset 1 noe
(integer) 1
127.0.0.1:6379> zadd myzset 2 tow
(integer) 1
127.0.0.1:6379>
zrange:查看集合中的元素,后面加上withscores即可显示当前元素所对应的顺序
127.0.0.1:6379> zrange myzset 0 -1
1) "noe"
2) "tow"
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
3) "tow"
4) "2"
127.0.0.1:6379>
zrem:删除集合中指定的元素
127.0.0.1:6379> zrem myzset tow
(integer) 1
127.0.0.1:6379> zrange myzset 0 -1
1) "noe"
127.0.0.1:6379>
zincrby:指定增加元素所对应的顺序,之前noe对应的顺序是1,然后使用zincrby新增了3
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
127.0.0.1:6379> zincrby myzset 3 noe
"4"
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "4"
127.0.0.1:6379>
zrank:返回指定元素,在集合中的所对应的索引。 索引是从0开始的,noe对应的索引是0,four对应的是3。按从小到大的顺序
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
3) "tow"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zrank myzset noe
(integer) 0
127.0.0.1:6379> zrank myzset four
(integer) 3
127.0.0.1:6379>
zrevrank:返回指定元素,在集合中的所对应的索引。按从从大到小的顺序,因为是按从大到小的排序,所以four索引变成了0,而noe的索引是3
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
3) "tow"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zrevrank myzset noe
(integer) 3
127.0.0.1:6379> zrevrank myzset four
(integer) 0
127.0.0.1:6379>
zrevrange:按集合顺序,从大到小进行显示
127.0.0.1:6379> zrevrange myzset 0 -1 withscores
1) "four"
2) "4"
3) "three"
4) "3"
5) "tow"
6) "2"
7) "noe"
8) "1"
127.0.0.1:6379>
zrangebyscore:显示指定顺序范围内的元素,按元素顺序
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
3) "tow"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zrangebyscore myzset 2 3
1) "tow"
2) "three"
127.0.0.1:6379>
zcount:返回指定顺序范围内元素的个数,按元素顺序
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "noe"
2) "1"
3) "tow"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zcount myzset 2 3
(integer) 2
127.0.0.1:6379>
zcrad:返回集合中元素数量
127.0.0.1:6379> zcard myzset
(integer) 4
127.0.0.1:6379>
zremrangebyrank:删除指定索引范围内的元素,索引从0开始,0到1,相对应的元素是noe、tow。按索引
127.0.0.1:6379> zrange myzset 0 -1
1) "noe"
2) "tow"
3) "three"
4) "four"
127.0.0.1:6379> zremrangebyrank myzset 0 1
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1
1) "three"
2) "four"
127.0.0.1:6379>
zremrangebyscore:删除指定顺序范围内的元素,按元素所对应的顺序
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "three"
2) "3"
3) "four"
4) "4"
127.0.0.1:6379> zremrangebyscore myzset 3 4
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1 withscores
(empty list or set)
127.0.0.1:6379>