Redis数据结构 之 Sorted sets

2018-06-09  本文已影响12人  诺之林

目录

集合

唯一

127.0.0.1:6379> SADD set-key id1
(integer) 1
127.0.0.1:6379> SADD set-key id1
(integer) 0
127.0.0.1:6379> SMEMBERS set-key
1) "id1"

无序

127.0.0.1:6379> SADD set-key id2
(integer) 1
127.0.0.1:6379> SADD set-key id3
(integer) 1
127.0.0.1:6379> SMEMBERS set-key
1) "id1"
2) "id3"
3) "id2"

关于集合所有命令 可以参考官方文档: Commands - Set

有序集合

分值

127.0.0.1:6379> ZADD zset-key 100 redis
(integer) 1
127.0.0.1:6379> ZADD zset-key 200 mongodb
(integer) 1
127.0.0.1:6379> ZADD zset-key 300 mysql
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE zset-key 0 200 WITHSCORES
1) "redis"
2) "100"
3) "mongodb"
4) "200"

有序

127.0.0.1:6379> ZREVRANGE zset-key 0 -1 WITHSCORES
1) "mysql"
2) "300"
3) "mongodb"
4) "200"
5) "redis"
6) "100"
127.0.0.1:6379> ZREVRANK zset-key redis
(integer) 2
127.0.0.1:6379> ZINCRBY zset-key 400 redis
"500"
127.0.0.1:6379> ZREVRANGE zset-key 0 -1 WITHSCORES
1) "redis"
2) "500"
3) "mysql"
4) "300"
5) "mongodb"
6) "200"
127.0.0.1:6379> ZREVRANK zset-key redis
(integer) 0

关于有序集合所有命令 可以参考官方文档: Commands - Sorted Set

问题讨论

相同分值的排序

127.0.0.1:6379> ZADD a-set 40 xiaowang
(integer) 1
127.0.0.1:6379> ZADD a-set 10 xiaoming
(integer) 1
127.0.0.1:6379> ZADD a-set 40 xiaohong
(integer) 1
127.0.0.1:6379> ZREVRANK a-set xiaowang
(integer) 0
127.0.0.1:6379> ZREVRANK a-set xiaoming
(integer) 2
127.0.0.1:6379> ZREVRANK a-set xiaohong
(integer) 1
127.0.0.1:6379> ZADD new-set 10 10
(integer) 1
127.0.0.1:6379> ZADD new-set 40 40
(integer) 1
127.0.0.1:6379> HSET a-hash xiaowang 40
(integer) 1
127.0.0.1:6379> HSET a-hash xiaoming 10
(integer) 1
127.0.0.1:6379> HSET a-hash xiaohong 40
(integer) 1
127.0.0.1:6379> HGET a-hash xiaowang
"40"
127.0.0.1:6379> ZREVRANK new-set 40
(integer) 0
127.0.0.1:6379> HGET a-hash xiaoming
"40"
127.0.0.1:6379> ZREVRANK new-set 10
(integer) 0
127.0.0.1:6379> HGET a-hash xiaohong
"40"
127.0.0.1:6379> ZREVRANK new-set 40
(integer) 0

有序集合的并集

127.0.0.1:6379> ZADD rank:201801 10 xiaowang
(integer) 1
127.0.0.1:6379> ZADD rank:201801 20 xiaoming
(integer) 1
127.0.0.1:6379> ZADD rank:201801 30 xiaohong
(integer) 1
127.0.0.1:6379> ZREVRANGE rank:201801 0 -1 WITHSCORES
1) "xiaohong"
2) "30"
3) "xiaoming"
4) "20"
5) "xiaowang"
6) "10"
127.0.0.1:6379> ZADD rank:201802 40 xiaowang
(integer) 1
127.0.0.1:6379> ZADD rank:201802 50 xiaoming
(integer) 1
127.0.0.1:6379> ZADD rank:201802 10 xiaohong
(integer) 1
127.0.0.1:6379> ZREVRANGE rank:201802 0 -1 WITHSCORES
1) "xiaoming"
2) "50"
3) "xiaowang"
4) "40"
5) "xiaohong"
6) "10"
127.0.0.1:6379> ZUNIONSTORE rank:2018 2 rank:201801 rank:201802 WEIGHTS 1 1
(integer) 3
127.0.0.1:6379> ZREVRANGE rank:2018 0 -1 WITHSCORES
1) "xiaoming"
2) "70"
3) "xiaowang"
4) "50"
5) "xiaohong"
6) "40"

参考

上一篇 下一篇

猜你喜欢

热点阅读