04 2018 档案
摘要:有了ziplist, 为什么还需要quicklist? 这不是逻辑搞复杂了么, 但比单纯用ziplist, 性能提高显著. 因为quicklist是由多个ziplist组成的双链表,每个ziplist可看成1个结点. quicklist数据结构: 结点数据结构: 每个结点可压缩,有效减少quickl
阅读全文
摘要:ziplist, redis内部定义的双链表, 可实现t_hash, t_zset对象。 ziplist数据结构: 总长度(uint32_t) + 尾结点偏移量(uint32_t) + 结点数(uint16_t) + 键结点 + 值结点 + 键结点 + 值结点 + 结点等.... + 键结点 + 尾
阅读全文
摘要:redis用的人比较多,其中zset大家都熟悉,主要用于排名场景。zset数据结构,分成两部分,一部分是用于排序,一部分用于缓存键值。先看看结构: 上面,跳跃表用于排序结构,可以按照名次,积分查找对应键, 时间复杂度: log(n)。按照名次,积分范围查找一系列键时, 先查询满足条件的第一个键,然后
阅读全文