1. 字符串(String):Redis 中的字符串采用简单动态字符串(Simple Dynamic Strings,SDS)作为底层实现。SDS 是一种可变长度的字符串,类似于 C 语言中的字符数组,但是 SDS 支持自动扩容和缩容
  2. 哈希表(Hash):Redis 中的哈希表底层采用字典(Dictionary)实现。字典是一种基于哈希表实现的无序键值对集合,支持高效的插入、查找和删除操作。Redis 中的字典实现采用链式哈希表,即使用拉链法处理哈希冲突,同时在插入和删除元素时,支持自动扩容和缩容。适用于高并发的场景。
  3. 列表(List):Redis 中的列表采用双端链表作为底层实现,同时在列表的两端各维护一个指针,支持快速的在头部和尾部进行元素的插入和删除操作。
  4. 集合(Set):Redis 中的集合底层采用哈希表实现。集合中的元素作为哈希表中的 key 存储,而 value 则被设为 NULL。
  5. 有序集合(Sorted Set / ZSet):Redis 中的有序集合底层采用跳跃表(Skip List)和哈希表相结合的方式实现。跳跃表是一种高效的有序数据结构,可以在 O(log n) 时间内完成元素的查找、插入和删除操作。在 Redis 中,有序集合的元素作为跳跃表中的 key 存储,而 value 则存储在哈希表中。

其他还有 Bitmaps,GEO, Stream, HyperLogLog

Redis内部有10种编码,根据数据长度,自动转换编码方式

Untitled