redis5种数据类型对应底层结构,redis的底层数据结构是什么
Yyds干货库存
作者:Knowledge Talk、CSDN博主专家、阿里云签约博主、InfoQ签约博主、华为云云翔专家
专长:全栈工程师、爬虫、ACM算法
微信官方账号:浅谈知识
redis对应的数据类型及其底层原理的总结,这次都给他了。
食物来了。
redis字符串对应的数据类型:字符串类型。
列表:列表类型
Hash:hash类型,即键值对类型。
Set:设置集合类型。
Zset:sortedSet有序集类型。
底层原理因为redis是用C语言编写的底层实现,所以它的底层实现也是基于C语言中的类型和自定义Struct类型的实现。
string:C语言中,如果数字小于2 ^ 64-1,用int存储。如果在新版redis中其他字符串小于44字节,可以,也可以是embstr(压缩字符串)。否则,使用raw。两者都是基于sds(简单动态字符串结构)实现的。区别在于sds对象和数据是分开的。
List:当列表个数小于512,单个元素小于64字节时,使用压缩列表ziplist,否则使用双向循环列表。
Hash:当列表个数小于512,单个元素小于64字节时,使用压缩列表ziplist,否则使用哈希表。
Set:存储的数据为整数,不超过512个数据,存储在有序数组中;否则,使用哈希表。
Zset:当列表个数小于512,单个元素小于64字节时,使用压缩列表ziplist,否则使用跳转列表。Zset排序就是每个元素对应一个分值,按照这个值排序。
以上是redis对应的数据类型及其底层原理的总结。希望对你有帮助。
版权归作者所有:来自博客的原创作品,转载授权请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。