redis之zset命令学习
zset是一个不包含重复元素的字符串集合,且每个元素都会关联一个 double 类型的分数(score)。这使得有序集合既可以通过成员(member)来查询,也可以通过分数(score)来排序。
以下是zset的一些简单命令
向有序集合中加入一个元素和该元素的分数:
bash
127.0.0.1:6379> zadd student 1 zhangsan 2 lisi 3 wangwu //添加三个元素
(integer) 3
按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素:
bash
127.0.0.1:6379> zrange student 0 2
1) "zhangsan"
2) "lisi"
3) "wangwu"
获取元素的分数:
bash
127.0.0.1:6379> zscore student lisi
"2"
删除元素:
bash
127.0.0.1:6379> zrem student lisi
(integer) 1
获取指定分数范围的元素:
bash
127.0.0.1:6379> zadd student 4 zhaoliu 5 xiaohao 15 xiaohong
(integer) 3
127.0.0.1:6379> zrangebyscore student 1 8
1) "zhangsan"
2) "wangwu"
3) "zhaoliu"
4) "xiaohao"
增加某个元素的分数:
bash
127.0.0.1:6379> ZINCRBY student 7 zhaoliu
"11"
获取集合中的元素数量:
bash
127.0.0.1:6379> zcard student
(integer) 5
获得指定分数范围内的元素个数:
bash
127.0.0.1:6379> zcount student 1 7
(integer) 3
按照排名范围删除元素:
bash
127.0.0.1:6379> ZREMRANGEBYRANK student 2 4
(integer) 3
127.0.0.1:6379> zrangebyscore student 1 100
1) "zhangsan"
2) "wangwu"
获取元素的排名:
从小到大:
bash
127.0.0.1:6379> zrangebyscore student 1 100
1) "zhangsan"
2) "wangwu"
3) "wujie"
4) "wuhao"
5) "xinxin"
6) "xiaolong"
127.0.0.1:6379> zrank student wujie
(integer) 2
从大到小:
bash
127.0.0.1:6379> zrevrank student wujie
(integer) 3