分布式算法算法todo

redis五大数据类型底层数据结构

2022-10-23  本文已影响0人  shark没有辣椒

我们先来看redis五大数据类型,string、list、hash、set、zset

再来看下redis五大数据类型用到的数据结构

整数数组和双向链表相信大家都比较熟悉,就不过多介绍了。

接下来我们看具体的数据类型对应的数据结构

string

string的底层实现可以是int、raw、embstr。int 编码是用来保存整数值,raw编码是用来保存长字符串,而embstr是用来保存短字符串。

int,存储 8 个字节的长整型(long,2^63-1)。
raw,存储大于 44 个字节的字符串(3.2 版本之前是 39 字节)
embstr, 代表 embstr 格式的 SDS(Simple Dynamic String 简单动态字符串),存储小于 44 个字节的字符串。

list

list底层的数据结构可以是ziplist和linkedlist,当列表对象保存的所有字符串元素的长度都小于64字节,且列表保存的元素少于512个,会使用ziplist,否则会使用linkedlist。

set

set的底层是intset或者hashtable,当集合对象保存的所有对象都是整数值,而且集合对象保存的元素数量小于512个,会使用intset,否则会使用hashtable。

hash

hash的底层是ziplist或者hashtable,当哈希对象保存的所有键值对的键和值的字符串长度都小于64字节,且哈希对象保存的键值对的数量小于512个,会使用ziplist,否则使用hashtable。

zset

zset的底层是ziplist或者skiplist,当有序集合的所有元素长度都小于64字节,且有序集合的元素数量小于128个,会使用ziplist,否则会使用skiplist。

总结

图1

引用:
https://blog.csdn.net/qq_42956653/article/details/122508570
https://blog.csdn.net/Solo95/article/details/108968393
https://www.imooc.com/article/324827

上一篇 下一篇

猜你喜欢

热点阅读