在面试题中,一般提到 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 |

