redis小记

本文介绍了Redis中的五种数据类型:字符串、哈希、列表、集合和有序集合的内部实现,包括各自的优化结构如ziplist和hashtable。同时,文章还探讨了Redis的redisObject结构和SDS数据结构,以及其弱事务机制,强调了Redis事务的一次性、顺序性和排他性特点。

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

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值