zoukankan      html  css  js  c++  java
  • redis对象类型及编码

    一、String(字符串)

           底层实现有三种

                 1.REDIS_ENCODING_INT                  使用权正数值实现的字符串对象

                 2.REDIS_ENCODING_EMBSTR         使用embstr编码的简单动态字符串实现的字符串对象

                 3.REDIS_ENCODING_RAW                使用简单字符串实现的字符串对象

           三种底层的编码转换

                  1. REDIS_ENCODING_INT     整数,存储字符串长度小于21且能够转化为整数的字符串

                   2.embstr编码方式和raw编码方式在3.0版本之前是以小于等于39字节为分界的   而在3.2版本之后,则变成了44字节为分界

    二、List列表

           底层实现是两种

                    1.zipList  压缩列表

                    2.linkedList 底层采用双端链表

           编码的转换

                    同时满足一下两个条件 使用zipList

                    1.列表对象保存的所有元素的长度都小于64字节

                    2.列表元素数量小于512个

                    不满足使用LinkedList编码

                     以上两个上限可以修改分别是list-max-ziplist-value,list-max-ziplist-entries

    三、Hash哈希

             底层实现是两种

                    1.zipList  压缩列表

                    2.Hashtable 底层实现字典

              编码的转换

                    同时满足一下两个条件 使用zipList

                    1.哈希对象保存的所有键值对键和值的字符串的长度都小于64字节

                    2.哈希对象键值对数量小于512个

                    不满足使用hashtable编码

                     以上两个上限可以修改分别是hash-max-ziplist-value,hash-max-ziplist-entries

    四、set集合对象

            底层实现是两种

                    1.intset压缩列表

                    2.Hashtable 底层实现字典

              编码的转换

                    同时满足一下两个条件 使用intset

                    1.集合对象保存的所有元素都是整数

                    2.集合元素数量不超过512个

                    不满足使用hashtable编码

                    第二个条件可以修改分别是set-max-intset-entries

    五、zset有序集合

             底层实现是两种

                    1.zipList  压缩列表

                    2.skipList   跳跃表

              编码的转换

                    同时满足一下两个条件 使用zipList

                    1.有序集合保存的元素字符串的长度都小于64字节

                    2.有序集合保存的元素数量小于128个

                    不满足使用skipList编码

                     以上两个上限可以修改分别是zset-max-ziplist-value,zset-max-ziplist-entries

       

             本文摘自《redis设计与实现》 黄健宏 著

  • 相关阅读:
    ip报文
    常见端口
    navicat15 破解版
    谷歌跨域设置
    CSS flex弹性布局来做 页面底部自适应:页面高度不足时,在底部显示;页面高度超出时,随页面滚动(亲测有效)
    phpstorm 2019 激活码
    aes cbc模式
    Vue的安装及使用快速入门
    从SVN服务器端彻底删除错误提交版本
    Nginx配置https和wss
  • 原文地址:https://www.cnblogs.com/weihl/p/13255374.html
Copyright © 2011-2022 走看看