
String 对应着 Redis 内部的 SDS (Simple Dynamic String),在 44 字节以内,使用 embstr 实现;超过了 44 字节,使用 raw 来存储。业务上经常用于一些不常变但又高频访问的数据做缓存。
List 在数据少的时候对应着 ZipList,在数据多的时候对应着 LinkedList,并且 Redis 在 3.2 之后引入了 QuickList。
Hash 在数据少的时候对应着 ZipList,其他对应着 Dict。
Dict 的实现是有两个 HashTable, 一般来说,只有一个有值;还有一个在扩容的时候需要。
Set 对应着 Dict。
ZSet 对应着 Dict+SkipList,业务上用来给每个商品多个维度评分,并记录成 score,然后以此来做排名。
其实对于 Redis,在实际使用中,我们常会用它来做这样两件事: