首页 > 其他 > 详细

Redis数据结构

时间:2019-10-14 11:58:15      阅读:79      评论:0      收藏:0      [点我收藏+]

底层实现:

 

sds简单动态字符串:

  动态:使用内存+空闲内存;

  简单:字符串封帧

  通用:保存文本或二进制数据

  安全:检查缓冲区溢出

链表:

  顺序访问、增删

字典:

  key访问

  hash表,链表解决冲突

  负载因子出发rehash

  转移成本均摊:索引计数器0-n逐个索引转移  #更细粒度:逐个key转移——读时转移、写时转移

  

跳表:

  有序

  节点随机向上层传递

整数集合

  集合无重复

  有序,查元素二分,交并补归并

  数据结构升级

压缩列表

  内存连续分配(数据+下|上个元素偏移)+小对象聚集

  复杂度的价值体现在相对较大的问题规模,问题较小时,权衡内存使用量

  连锁更新

 

对象:用于表示键值。对象X编码=实现 存在转换:升级

 

字符串对象

  int 整数

  raw sds

  embstr 只读 短字符串,聚集在一块连续内存 

列表对象

  ziplist 限制条件:单元素大小上限、元素数量

  linkedlist

哈希对象

  ziplist

  hashtable

集合对象

  intset

  hashtable:仅使用key

有序集合对象

  ziplist

  skiplist+hashtable:指针共享元素

 

对象回收:引用计数(对象共享)+过期时间(空转时间)

 

Redis数据结构

原文:https://www.cnblogs.com/qmc2077/p/11670172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!