redis 对应的数据类型及其底层原理
🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
redis 对应的数据类型及其底层原理总结🤞这次都给他拿下🤞
正菜来了⛳⛳⛳
🎈redis 对应的数据类型
String:字符串类型。List:列表类型 Hash:hash 类型,即键值对类型。Set:set 集合类型。Zset:sortedSet 有序集合类型。
🎈底层原理
因为 redis 是用 C 语言编写的底层实现,所以其底层也是基于 C 语言中的类型和自定义的 Struct 类型的实现。
📍String :
在 C 语言中如果是数字小于 2^64-1 使用 int 存储,其它字符串在 redis 新版本上如果小于 44 字节,是哦也能够 embstr(压缩字符串),否则使用 raw,两者都是基于 sds(简单动态字符串结构)实现,区别就是 sds object 和数据是分开的。
📍List:
当列表个数小于 512 且单个元素小于 64 字节,使用压缩列表 ziplist,否则使用双向循环列表
📍Hash:
当列表个数小于 512 且单个元素小于 64 字节,使用压缩列表 ziplist,否则使用散列表
📍Set:
存储的数据是整数,且不超过 512 个,使用有序数组存储,否则使用散列表
📍Zset:
当列表个数小于 512 且单个元素小于 64 字节,使用压缩列表 ziplist,否则使用跳表,zset 排序是每个元素对应一个 score 值,按照这个值排序的。
🍚总结
以上就是关于 redis 对应的数据类型及其底层原理的总结,希望对你有所帮助。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/d1864026091ce7ae82f8b5c83】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论