SortedSet 应该是 Redis 里最复杂的一个数据结构,也是面试中被问及最多的~
先看下最简单的应用:
redis 127.0.0.1:6379> ZADD todayScoreRank 100 张三
redis 127.0.0.1:6379> ZADD todayScoreRank 90 李四
redis 127.0.0.1:6379> ZADD todayScoreRank 80 王五
redis 127.0.0.1:6379> ZADD todayScoreRank 70 赵六
redis 127.0.0.1:6379> ZADD todayScoreRank 60 李七
redis 127.0.0.1:6379> ZRANGE todayScoreRank 80 100 WITHSCORES
通过给每个元素(张三、李四)增加分数(score:100,90)来实现有序。
在了解 SortedSet 实现原理前,有一点不得不提,那就是:
Redis 是靠内存工作的,而内存成本也是很高的,所以,如何高效利用内存就成了 Redis 设计的一个主线
这个论点对于理解 Redis 实现原理非常有帮助,那就是在时间允许的情况下会采取节约内存的方案,如果时间不允许了再使用占用更多内存的方案。
首先,我们来看几个参数:
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
在理解这两个参数前,我们先简单了解下 ziplist 这种数据结构&#