得物技术终面:redis数据结构底层实现

前言

博主硬钢到技术终面,算是尽力了,面试官也觉得我年轻了些,之前蚂蚁金服的面试官也这么说。害,只能一点点打好基础,加油。
被pass的是因为redis数据结构底层实现知识不扎实,今天恶补一下!

redis 数据结构

  • string
  • list
  • hash
  • set
  • zset
  • geo
  • bitmap
  • hypeloglog

底层实现

sds

sds(Simple dynamic string)
数据结构
在这里插入图片描述
有什么特点呢?就是会保存字符串的长度,以及未使用的长度,这样的话可以避免内存溢出以及方便对应的扩容,不需要去遍历
resize过程
扩展过程,在小于1M的时候会翻倍扩展,大于1M的时候最多扩展1M,减少资源浪费

dic字典

dic
是hash的数据结构实现
rehash要点
在这里插入图片描述
好处:就是在扩容的时候,不会说不能提供服务,会存在两张hash表,然后进行相应的同步,新增的时候只在新hash表,删除两边都删除,查询会先查旧的,没有再查新的。

skiplist

这个是zset的底层实现
在这里插入图片描述
会有多层的索引,这样的话可以更加快捷的查询的数据,对比红黑树会更简单实现,新增或者删除不会有树的调整。

ziplist 压缩列表

是list数据结构的实现
在这里插入图片描述
说实话这个看不太懂,会保存到队尾的距离,这样的话不用去一直遍历,然后还有不同的储存类型,根据字节的数量

快速列表(quicklist)

这个跳过,卷不动了,大家自行学习

参考blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值