在面试题中,一般提到 Redis 数据结构,常常指的是:字符串 String、列表 List、哈希 hash、集合 Set、有序集合 ZSet。其实这些属于 Redis 的对象类型,也就是 key-value 中的 Value 的类型。而在 Redis 中实现这些类型的数据结构却另有它人,在 Redis 中数据结构使用编码来表示。
Redis 常见数据结构有:简单动态字符串 SDS、字典 dict、链表 list、跳跃表 skiplist、整数集合 intset、压缩列表 ziplist。
对象 | 编码(数据结构) | 对象类型 |
---|---|---|
string | int、embstr、SDS | REDIS_STRING |
list | ziplist、linkedlist | REDIS_LIST |
hash | ziplist、hashtable | REDIS_HASH |
set | intset、hashtable | REDIS_SET |
zSet | ziplist、skiplist+dict | REDIS_ZSET |