Redis有序集合对象

Redis有序集合对象

  1. 有序集合的底层数据结构类型

答:zset的存储底层实现结构有ziplist和skiplist(跳跃表)两种类型实现。如果使用ziplist(压缩列表)作为底层实现,由于我们存储数据的时候需要输入数据的分值作为排序的依据,所有ziplist使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的值,第二个节点保存元素的分值。例如我们执行了zadd price 9 apple 10 banana 6 cherry那么使用ziplist存储如下:

Skiplist编码的底层实现使用了字典和跳跃表作为实际的数据结构存储。跳跃表按分值从小到大保存了所有集合元素,每个跳跃表节点都保存了一个集合元素。跳跃表节点使用object属性保存了元素的成员,使用score属性保存了元素的分值。

  1. ziplist和skiplist的结构转换

答:如果有序集合保存的元素个数小于128个且所有元素成员的长度都小于64就使用ziplist作为底层结构存储数据,否则使用skiplist。这两个值可以通过配置文件的zset-max-ziplist-enteries和zset-max-ziplist-value修改。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie
应支付0元
点击重新获取
扫码支付

支付成功即可阅读