美文网首页
redis集合对象

redis集合对象

作者: 快点给我想个名 | 来源:发表于2019-11-28 19:41 被阅读0次

    内容来自:
    《redis设计与实现》购买本书请访问: 京东商城
    《Redis 深度历险:核心原理与应用实践》购买本书请访问: 京东商城

    redis集合对象

    集合对象的编码可以是 intset 或者 hashtable

    • intset

    intset 编码的集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面。

    如:

    redis> SADD numbers 1 3 5
    (integer) 3
    
    intset编码
    • hashtable

    hashtable 编码的集合对象使用字典作为底层实现, 字典的每个键都是一个字符串对象, 每个字符串对象包含了一个集合元素, 而字典的值则全部被设置为 NULL

    如:

    redis> SADD fruits "apple" "banana" "cherry"
    (integer) 3
    
    hashtable编码
    • 编码的转换

      当集合对象可以同时满足以下两个条件时, 对象使用 intset 编码:

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

      2. 集合对象保存的元素数量不超过 512

        第二个条件的上限值是可以修改的, 具体请看配置文件中关于 set-max-intset-entries 选项的说明。

    • 集合部分命令实现

    因为集合键的值为集合对象, 所以用于集合键的所有命令都是针对集合对象来构建的, 表 8-10 列出了其中一部分集合键命令, 以及这些命令在不同编码的集合对象下的实现方法。


    表 8-10 集合命令的实现方法

    相关文章

      网友评论

          本文标题:redis集合对象

          本文链接:https://www.haomeiwen.com/subject/guhiwctx.html