zoukankan      html  css  js  c++  java
  • 哈希对象

    哈希对象的编码可以是ziplist或者hashtable

    1. ziplist编码的哈希对象使用压缩列表作为底层实现

    保存了同一个键值对的两个节点总是紧挨在一起的,保存键的节点在前,保存值的节点在后,
    先添加到哈希对象中的键值对会被放在压缩列表的表头方向,后添加到哈希对象中的键值对会被放在压缩列表的表尾方向

    1. hashtable编码的哈希对象使用字典作为底层实现,每个键值对都使用一个字典键值对来保存,

    字典的每个键都是一个字符串对象,对象中保存了键值对的键
    字典的每个值都是一个字符串对象,对象中保存了键值对的值

    编码转换

    当哈希对象可以【同时满足】以下条件时,哈希对象的编码使用ziplist,否则使用hashtable编码,

    1. 哈希对象保存的所有键值对的键和值的字符串长度都 < 64byte
    2. 哈希对象保存的键值对数量 < 512个,

    编码的转换两个条件的上限值可通过配置文件中的hash-max-ziplist-value、hash-max-ziplist-entries选项进行调整,

    源码阅读

    1. 文件:src/t_hash.c
    只言片语任我说,提笔句句无需忖。落笔不知寄何人,唯有邀友共斟酌。
  • 相关阅读:
    ruby 实现java中的aes 加密解密
    移动端手机端web页面中背景图固定问题
    hooks 组件对应的生命周期
    React 生命周期函数总结
    Sequelize 常用增删改查函数
    如何验证SSH的连通性
    如何生成SSH密钥
    如何查看本机ssh秘钥
    如何更改本地代码仓库指向
    如何发布npm 包
  • 原文地址:https://www.cnblogs.com/phonecom/p/15129309.html
Copyright © 2011-2022 走看看