总结-redis数据结构时间复杂度及对象编码方式

redis虽然提供了多种数据结构,但是redis并没有直接使用这些数据结构来实现底层键值对,而是基于这些数据结构创建了一个对象系统(1:字符串 2:列表 3:集合 4:hash 5:有序集合)。

接下来总结一下各个对象使用的底层数据结构及其时间复杂度。



redis对象

1:字符串

2:列表

2.1、列表对象的编码可以是ziplist或linkedlist。

编码转换:当列表对象同时满足一下两个条件时,列表对象使用ziplist编码,否则使用linkedlist编码

1)列表对象保存的所有字符串元素的长度都小于64字节时(redis配置文件 list-max-ziplist-value 配置)

2)列表对象保存的元素数量小于512个。(redis配置文件list-max-ziplist-entries配置

2.2、列表对象命令的实现

3:hash对象

4:集合

5:有序集合

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Redis的内存优化 声明:本文内容来自《Redis开发与运维》一书第八章,如转载请声明。 Redis所有的数据都...
    meng_philip123阅读 18,953评论 2 29
  • 上周看完Redis设计与实现,过程结合Redis的unstable分支的源码来对照,基本对Redis的实现原理有了...
    zcliu阅读 1,048评论 0 1
  • 转载地址:http://gnucto.blog.51cto.com/3391516/998509 Redis与Me...
    Ddaidai阅读 21,479评论 0 82
  • 现在的我躺在沙发上看着球场上的托雷斯,看着一个伟大的射手再次拾起自己的荣光。一晃十年,从伊斯坦布尔到今天的梅阿查,...
    雪方明阅读 227评论 0 2
  • 可修改、不可修改的集合类;可动态添加修改、不可动态添加修改。 比如NSArray和NSMutableArray,前...
    March_Cullen阅读 441评论 0 1