redis采用 redisObjec 结构来统一五种不同的数据类型
五种数据类型:
1、字符串(String): 根据存储的值不同,底层由三种内部实现。
1.1:int:当存储的为数字时8个字节的long
1.2:embstr:当存储的字符串小于等于44个字节时
1.3:raw:当存储的字符串大于44个字节时
2、哈希(hash):存储的结构分为两种
2.1:ziplist(压缩列表)当哈希类型元素个数小于hash-max-ziplist-entries 配置(默认512个)、同时所有值都小于hash-max-ziplist-value配置(默认64 字节)时,ziplist使用更加紧凑的 结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀
2.2:hashtable当元素个数大于hash-max-ziplist-entries 配置(默认512个),或者值小于hash-max-ziplist-value配置(默认64 字节)时
3、列表(list)有两种内部实现
3.1:ziplist当列表的元素个数小于list-max-ziplist-entries配置 (默认512个),同时列表中每个元素的值都小于list-max-ziplist-value配置时 (默认64字节),Redis会选用ziplist来作为列表的内部实现来减少内存的使用
3.2:linkedlist当列表满足不了ziplist时使用(quicklist ziplist和linkedlist的结合以ziplist为节点的链表(linkedlist))
4、集合(set):有两种内部实现
4.1:intset当集合中的元素都是整数且元素个数小于set-max- intset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用
4.2:hashtable(哈希表):当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现
5、有序集合(zset)有两种实现
5.1:ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplist- ent
redis小记
最新推荐文章于 2025-06-24 16:55:38 发布
本文介绍了Redis中的五种数据类型:字符串、哈希、列表、集合和有序集合的内部实现,包括各自的优化结构如ziplist和hashtable。同时,文章还探讨了Redis的redisObject结构和SDS数据结构,以及其弱事务机制,强调了Redis事务的一次性、顺序性和排他性特点。

最低0.47元/天 解锁文章
806

被折叠的 条评论
为什么被折叠?



