zoukankan      html  css  js  c++  java
  • 《Redis

    一:概述

      - Redis 源码版本为3.0.0.

      - Redis 有序集合命令请戳。

      - OBJECT ENCODING key 查看数据底层类型实现。

    二:总结

      - 使用 Sort Set  时

        - 控制数据大小,尽量不要写入 不要超过 zset-max-ziplist-value(默认为64) 配置的字节数。

        - 控制有序集合数量,尽量数量不要 不要超过 zset-max-ziplist-entries(默认为128) 配置的个数。

      - 否则会引起底层数据结构的变化导致内存耗费的增加,同时数据过大和有序集合数量,都会导致有序集合性能降低

    二:有序集合的底层实现

      - 编码方式

        - 有序集合对象共有两种编码方式  ziplist(压缩列表) / skiplist(跳跃表)

      - 编码方式的选择

        - 当有序集合元素都 小于64字节(zset-max-ziplist-value) / 列表数量小于128个(zset-max-ziplist-entries) 则使用 ziplist 。

        - 不满足条件则使用 skiplist.

      ziplist 编码方式

        - 每个集合元素使用两个紧挨在一起的压缩列表节点保存.

        - 第一个节点保存元素(member),第二个元素保存分值(score)

        - 压缩列表中集合元素分值由大至小排列 

        - 图示

          - 

      - skiplist 编码方式

        - zset 作为底层结构实现(一个字典/一个跳跃表).

        - 跳跃表(zsl)由小到大的保存了所有集合元素,每个节点都保存了一个集合元素。(实现范围查找)

        - 字典(dict)创建了一个从成员->分值得映射。(0(1)的复杂度可以获取成员的分支) 

        - 图示

          - 

      

    四:编码转换

      - 当 ziplist 大于64/长度大于128 则会进行编码的转换 ziplist -> skiplist.

    五:列表命令的实现

      - 

  • 相关阅读:
    ES6(四)字符串的扩展
    ES6(三)数组的扩展
    ES6(二) Destructuring-变量的解构赋值
    ES6(一) let and const
    canvas(七) 文字编写
    canvas(五)createPattern
    canvas(四) Gradient- demo
    canvas(三) star- demo
    jQuery之简单动画效果
    web开发小白之路
  • 原文地址:https://www.cnblogs.com/25-lH/p/12684151.html
Copyright © 2011-2022 走看看