redis数据类型 底层数据结构

Redis常用数据结构包括string(SDS)、list(双向链表/压缩列表)、hash(压缩列表/哈希表)、set(哈希表/整数集合)和zset(压缩列表/跳表)。SDS保证了字符串操作的安全性,避免缓冲区溢出,而list、hash、set和zset会根据元素数量和大小选择合适的底层实现以优化存储效率。
摘要由CSDN通过智能技术生成

Redis 常用的数据结构有:string,list,hash,set,zset

String -------SDS(简单动态字符串)

SDS动态字符串时间复杂度O(1)  SDS API安全,拼接字符串不会造成缓冲区溢出。因为SDS在拼接字符串之前会检查SDS空间是否满足安全,如果空间不够自动扩容,所以不会导致缓冲区溢出的问题。

list--------双向链表或压缩列表

-如果列表的元素个数小于512个(默认值),列表每个元素的值小于64字节(默认值)redis会使用压缩列表作为list类型的底层数据结构

-redis3.2版本之后list的底层结构只由quicklist实现了,替代了双向链表和压缩列表

hash---------压缩列表或哈希表

-哈希类型元素个数小于512,所有值小于64字节redis会使用压缩列表作为hash的底层数据结构;

-如果其他条件redis会使用哈希表作为hash类型的底层数据结构

set------哈希表或整数集合

-集合元素都是整数且元素个数小于512,redis会使用整数集合来作为set类型的底层数据结构;

如果集合中的元素不满足上面的需求,redis使用哈希表作为set的底层数据结构

zset-----------压缩列表和跳表

-元素小于128 元素值小于64字节>>>>>压缩列表

-不满足上面条件>>>>>>>>>>>>>>>>>跳表

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值