#### redis hash(ziplist/hashtable)、set(inset/hashtable) ####

摘自:【大课堂】Redis中hash、set、zset的底层数据结构原理 - 掘金

仅做个人备份,浏览请看原文

【hash】

hash的底层存储有两种数据结构,一种是ziplist,另外一种是hashtable。

(1) ziplist

hash对象只有同时满足以下条件,才会采用ziplist编码:

  • hash对象保存的键和值字符串长度都小于64字节
  • hash对象保存的键值对数量小于512 ziplist存储的结构如下

当数据量比较小的时候,我们会将所有的key及value都当成一个元素,顺序的存入到ziplist中,构2成有序。

(2) hashtable

见 #### redis hash 实现结构 ####_wangfy_的博客-CSDN博客

【set】

set是一个无序的、自动去重的集合数据类型,Set底层用两种数据结构存储,一个是inset,一个是hashtable。

(1) inset

inset为可以理解为有序数组,使用inset数据结构需要满足下述两个条件:

  • 元素个数少于512
  • 元素是整型

查询方式一般采用二分查找法,实际查询复杂度也就在log(n)

(2) hashtable

其中hashtable的key为set中元素的值,而value为null。

hash结构实现原理 见  见 #### redis hash 实现结构 ####_wangfy_的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值