Sorted Sets类型及操作:
sorted set是set的一个升级版本,它在set的基础上桑增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
1、zadd
向zset中添加value,score用于排序。如果元素存在,则更新其顺序,不更新值,并返回0。zadd zset名称 (score)排序 value。
127.0.0.1:6379> zadd myzset1 1 one
(integer) 1
127.0.0.1:6379> zadd myzset1 2 two
(integer) 1
127.0.0.1:6379> zadd myzset1 3 two
(integer) 0
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
2、zrange/zrevrange
zrange显示zset中的元素按socre从小到大排序。
zrevrange按score从大到小排序显示。
若将score顺序也显示,需要指定withscores。zrange zset名称 起始下标 结束下标 (withscores)
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379> zrange myzset1 0 1
1) "one"
2) "two
127.0.0.1:6379> zrevrange myzset1 0 -1 withscores
1) "three"
2) "5"
3) "one"
4) "3"
3、zrem
删除zset中的元素。zrem zset名称 元素值
127.0.0.1:6379> zrem myzset1 two
(integer) 1
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "1"
4、zincrby
如果在zset中已经存在元素,则该元素的score增加指定的值,否则向该集合中添加元素,其scroe的值为指定的增加值。
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "1"
127.0.0.1:6379> zincrby myzset1 2 one
"3"
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
127.0.0.1:6379> zincrby myzset1 5 three
"5"
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
3) "three"
4) "5"
5、zrank
返回zset中某元素的排名。(按score从小到大排序)即下标,索引值,不是score的值。zrank zset名称 查找元素
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
3) "three"
4) "5"
127.0.0.1:6379> zrank myzset1 three
(integer) 1
127.0.0.1:6379> zrank myzset1 one
(integer) 0
6、zrevrank
返回zset中某元素的排名。(按score从大到小排序)即下标,索引值,不是score的值。zrank zset名称 查找元素
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
3) "three"
4) "5"
127.0.0.1:6379> zrevrank myzset1 one
(integer) 1
127.0.0.1:6379> zrevrank myzset1 two
(nil)
127.0.0.1:6379> zrevrank myzset1 three
(integer) 0
7、zrangebyscore
按socre的值去显示zset中的元素。zrangebyscore zset sorce起始值 score结束值 (withscores)
127.0.0.1:6379> zrangebyscore myzset1 2 6 withscores
1) "one"
2) "3"
3) "three"
4) "5"
8、zcount
返回在zset中给定score区间的元素数量。
127.0.0.1:6379> zcount myzset1 2 5
(integer) 2
127.0.0.1:6379> zcount myzset1 2 3
(integer) 1
9、zcard
返回zset集合中所有的元素个数。
127.0.0.1:6379> zcard myzset1
(integer) 2
10、zremrangebyrank
删除集合中在给定区间的元素(按下标,即索引删除)。
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
3) "three"
4) "5"
127.0.0.1:6379> zremrangebyrank myzset1 1 1
(integer) 1
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"
11、zremrangenysocre
删除集合中在给定区间的元素(按score顺序删除)。
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "two"
2) "1"
3) "three"
4) "2"
5) "one"
6) "3"
127.0.0.1:6379> zremrangebyscore myzset1 1 2
(integer) 2
127.0.0.1:6379> zrange myzset1 0 -1 withscores
1) "one"
2) "3"