您的位置:首页 > 数据库 > Redis

Redis初探06——Redis的有序集合sorted set类型及操作

2017-04-13 00:13 896 查看
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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息