redis的五大数据类型底层实现

最近在看《redis的设计与实现》,虽然自己也记了些笔记,但还是把它写成博客记录下来。希望能对别人也有帮助。

对象的类型

redis中有五大对象类型,分别是字符串对象、列表对象、哈希对象、集合对象和有序集合对象。
在这里插入图片描述
因为redis是以key - value的形式放置数据的。对于键值对来说,键总是一个字符串对象,而值可以是字符串对象、列表对象、哈希对象、集合对象和有序集合对象其中的一种。

根据不同的场景,同一个对象的底层实现也是不同的。与实现方式相对应的就是对象的编码方式。这让redis可以根据不同的场景来为一个对象设置不同的编码(底层实现)而优化对象在某一场景下的效率。
可以使用OBJECT ENCODING命令查看数据库键的值对象的编码方式。

字符串对象

编码方式 : int 、 embstr 、 raw

如果字符串对象保存的是一个整数,那么底层会用一个long保存值,并把编码设置为int。
如果字符串保存的是字符串,并且字符串值的长度大于32个字节,那么字符串对象会使用一个SDS(redis自带的有关String的数据结构)来保存值,并将对象的编码设置为raw。
如果保存的是字符串,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值