Redis数据类型都是什么?底层数据结构是怎样的?数据结构为什么这样高效?redis二进制安全是什么?
Redis支持的数据类型包括:
- 字符串(String)
- 列表(List)
- 集合(Set)
- 有序集合(Sorted Set,或称为ZSet)
- 哈希(Hash)
- 位图(Bitmap)
- 超日志(HyperLogLog)
底层数据结构:
- 字符串:简单动态字符串(Simple Dynamic String,SDS)
- 列表:双向链表
- 集合:哈希表
- 有序集合:跳跃列表(ZSet是跳表+哈希表)
- 哈希:哈希表
- 位图:位数组
- 超日志:基数估计算法
Redis为何对这些数据类型使用高效的底层数据结构:
- 字符串:SDS可以避免字符串长度改变时频繁的内存重分配。
- 列表:双向链表使得插入和删除操作都是O(1)复杂度。
- 集合、有序集合、哈希:使用哈希表存储数据,允许快速访问。
- 跳表:有序集合可以快速的插入、删除和查找操作。
- 位图:位操作能够对位串进行快速的操作。
- 超日志:基数估计算法适合用于大量的数据去重统计。
这些数据结构的选择使得Redis能够提供高性能的键值存储服务。
评论已关闭