目录
一、引言
本篇文章我们将介绍Redis中value的常用数据结构。
二、常用数据结构
Redis在底层源码实现中,对上述数据结构都进行了优化,内部具体实现的数据结构会存在变 数。
1.字符串(String)
数据类型:String,内部编码:raw (底层就是持有一个字节数组byte数组,比较长的字符串),int (value就是整数时,用int保存,方便保存以及算术运算),embstr(针对短字符串进行的特殊优化)
2.哈希(HashMap)
数据类型:Hash,内部编码:hashtable(最基本的Hash表),ziplist(在哈希表中元素比较少的时候,节省空间)
3.列表(List)
数据类型:List,内部编码:LinkedList(链表),ziplist(压缩列表),在Redis3.2开始,引入了新的实现方式,quickList,同时兼顾了上述两种的优点(quickList就是一个链表,每一个元素又是一个ziplist,同时兼顾了空间和效率)
4.集合(Set)
数据结构:Set,内部编码:hashtable(最基本的Hash表),intset(集合中存的都是整数)
5.有序集合(Zset)
除了存储member之外,还存储一个score(权重)
数据结构:zset,内部编码:skiplist(跳表也是链表,每个节点会有多个指针域,时间复杂度是O(N)),ziplist(压缩集合)
命令:
object encoding key
查看具体执行的编码:

三、总结
本篇文章简单介绍了在redis中的数据结构以及具体的编码方式,感谢观看!