• 《Redis


    一:概述

      - Redis 源码版本为3.0.0.

      - Redis 哈希命令请戳。

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

    二:总结

      - 使用 Hash 时

        - 控制数据大小,尽量不要写入 不要超过 hash-max-ziplist-value 配置的字节。

        - 控制哈希内的个数,尽量不要写入 不要超过  hash-max-ziplist-entries 配置的个数。

      - 否则会引起底层数据结构的变化导致内存耗费的增加,同时数据过大和个数过多,都会导致哈希性能降低

    二:哈希对象的底层实现

      - 编码方式

        - 字符串对象共有三种编码方式  ziplist(压缩列表) / hashtable(字典底层实现)

      - 编码方式的选择

        - 当哈希对象元素都 小于64字节(hash-max-ziplist-value) / 元素数量小于512个(hash-max-ziplist-entries) 则使用 ziplist 。

        - 不满足条件则使用 hashtable.

      ziplist 编码方式

        - 为了节约内存而开发,由一系列的特殊编码连续内存块组成的顺序型数据结构

        - 保存流程

          - 每当新的哈希节点加入,会将 哈希键/哈希值 推入压缩列表的队尾。(类队列)

        - 图示

          - 

      - hashtable 编码方式

        - hastable 使用字典作为底层实现,哈希中的每一个键值都是用一个字典键值来保存。

        - 图示

          - 

    四:编码转换

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

    五:字符串命令的实现

      - 

  • 相关阅读:
    Linux常用命令
    git常用命令查询
    专有名词
    dos2unix 转换字符
    常见脚本语言
    使用shell脚本自动化部署rabbitmp
    通过脚本来执行ssh登录
    码率mbps
    centos7 firewall指定IP与端口访问(常用)
    ubuntu16.04离线安装docker记录
  • 原文地址:https://www.cnblogs.com/25-lH/p/12664848.html
Copyright © 2020-2023  润新知