您的位置:首页 > 理论基础 > 数据结构算法

redis 数据结构 - 有序集合 sort set

2017-12-27 19:40 519 查看

10.4 有序集合

10.4.1 添加元素

命令:zadd key score1 value1 score2 value2 ...
测试:
127.0.0.1:6379> zadd orderset 1 lili 2 lucy 8 pliy 3 cici 6 dd
(integer) 5


10.4.2 获取集合中的前四个元素

命令:zrange key  start stop [withscores]
测试:
127.0.0.1:6379> zrange orderset 0 3
1) "lili"
2) "lucy"
3) "cici"
4) "dd"


10.4.3 获取集合中的第二个到第三个元素

测试:
127.0.0.1:6379> zrange orderset 1 2
1) "lucy"
2) "cici"


10.4.4 按照元素的权重取值

命令:zrangebysocre key min max [withscores] limit offset n
测试:
127.0.0.1:6379> zrangebyscore orderset 3 8
1) "cici"
2) "dd"
3) "pliy"
127.0.0.1:6379> zrangebyscore orderset 3 8 limit 1 2
1) "dd"
2) "pliy"
127.0.0.1:6379> zrangebyscore orderset 3 8 withscores limit 1 2
1) "dd"
2) "6"
3) "pliy"
4) "8"


10.4.5 获取集合中的所有元素

测试:
127.0.0.1:6379> zrange orderset 0 -1
1) "lili"
2) "lucy"
3) "cici"
4) "dd"
5) "pliy"
127.0.0.1:6379> zrange orderset 0 -1 withscores
1) "lili"
2) "1"
3) "lucy"
4) "2"
5) "cici"
6) "3"
7) "dd"
8) "6"
9) "pliy"
10) "8"


10.4.6 查询集合中某个元素的位置

命令:zrank key value
测试:
127.0.0.1:6379> zrank orderset cici
(integer) 2


10.4.7 倒叙排列,获取集合中某个元素的位置

命令 :zrevrank key value
测试:
127.0.0.1:6379> zrevrank orderset lili
(integer) 4


10.4.8 获取倒叙排列的所有元素

命令:zrevrange key start stop
测试:
127.0.0.1:6379> zrevrange orderset 0 -1
1) "pliy"
2) "dd"
3) "cici"
4) "lucy"
5) "lili"


10.4.9 获取倒叙排列的所有元素以及权重

127.0.0.1:6379> zrevrange orderset 0 -1 withscores
1) "pliy"
2) "8"
3) "dd"
4) "6"
5) "cici"
6) "3"
7) "lucy"
8) "2"
9) "lili"
10) "1"


10.4.10 获取集合中根据权重某个范围内的元素

命令:zrerangebyscore key max min [withscores] limit offset n
测试:
127.0.0.1:6379> zrevrangebyscore orderset 8 0
1) "pliy"
2) "dd"
3) "cici"
4) "lucy"
5) "lili"
127.0.0.1:6379> zrevrangebyscore orderset 8 0 withscores
1) "pliy"
2) "8"
3) "dd"
4) "6"
5) "cici"
6) "3"
7) "lucy"
8) "2"
9) "lili"
10) "1"
127.0.0.1:6379> zrevrangebyscore orderset 8 0 limit 2 2
1) "cici"
2) "lucy"
127.0.0.1:6379> zrevrangebyscore orderset 8 0 withscores limit 2 2
1) "cici"
2) "3"
3) "lucy"
4) "2"


10.4.11 删除集合中的某个元素

命令:zrem key value1 value2 ...
测试:
127.0.0.1:6379> zrange orderset 0 -1
1) "lili"
2) "lucy"
3) "cici"
4) "dd"
5) "pliy"
127.0.0.1:6379> zrem orderset lili lucy
(integer) 2
127.0.0.1:6379> zrange orderset 0 -1
1) "cici"
2) "dd"
3) "pliy"


10.4.12 按照权重的范围删除元素

命令:zremrangebyscore key min max
127.0.0.1:6379> zrange orderset 0 -1 withscores
1) "lucy"
2) "2"
3) "cici"
4) "3"
5) "lili"
6) "3"
7) "dd"
8) "6"
9) "pliy"
10) "8"
127.0.0.1:6379> zremrangebyscore orderset 3 6
(integer) 3
127.0.0.1:6379> zrange orderset 0 -1
1) "lucy"
2) "pliy"
127.0.0.1:6379> zrange orderset 0 -1 withscores
1) "lucy"
2) "2"
3) "pliy"
4) "8"


10.4.13 根据元素的位置,删除元素

命令:zremrangebyrank key start end
测试:
127.0.0.1:6379> zrange orderset 0 -1
1) "lucy"
2) "pliy"
3) "lili"
4) "zhang"
5) "wang"
127.0.0.1:6379> zremrangebyrank orderset 0 2
(integer) 3
127.0.0.1:6379> zrange orderset 0 -1
1) "zhang"
2) "wang"


10.4.14 统计集合中的元素的个数

命令:zcard key
测试:
127.0.0.1:6379> zrange orderset 0 -1
1) "wang1"
2)
9c0f
"zhang1"
3) "lili"
4) "zhang"
5) "wang"
127.0.0.1:6379> zcard orderset
(integer) 5


10.4.15 统计集合中元素权重在某个范围的个数

命令:zcount key min max
测试:
127.0.0.1:6379> zrange orderset 0 -1 withscores
1) "wang1"
2) "6"
3) "zhang1"
4) "8"
5) "lili"
6) "10"
7) "zhang"
8) "11"
9) "wang"
10) "12"
127.0.0.1:6379> zrangebyscore orderset 7 10
1) "zhang1"
2) "lili"
127.0.0.1:6379> zcount orderset 7 10
(integer) 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: