三十九、Redis 有序集合对象
有序集合的编码可以是 ziplist 或者 skiplist 。 ziplist 编码的有序集合对象使用压缩列表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩列表节点来保存, 第一个节点保存元素的成员(member), 而第二个元素则...
有序集合的编码可以是 ziplist 或者 skiplist 。 ziplist 编码的有序集合对象使用压缩列表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩列表节点来保存, 第一个节点保存元素的成员(member), 而第二个元素则...
集合对象的编码可以是 intset 或者 hashtable 。 intset 编码的集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面。 举个例子, 以下代码将创建一个如图 8-12 所示的 intset 编...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
哈希对象的编码可以是 ziplist 或者 hashtable 。 ziplist 编码的哈希对象使用压缩列表作为底层实现, 每当有新的键值对要加入到哈希对象时, 程序会先将保存了键的压缩列表节点推入到压缩列表表尾, 然后再将保存了值的压缩...
列表对象的编码可以是 ziplist 或者 linkedlist 。 ziplist 编码的列表对象使用压缩列表作为底层实现, 每个压缩列表节点(entry)保存了一个列表元素。 举个例子, 如果我们执行以下 RPUSH 命令, 那么服务器...
字符串对象的编码可以是 int 、 raw 或者 embstr 。 如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr属性里面(将 void* 转换成 l...
Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对时, 我们至少会创建两个对象, 一个对象用作键值对的键(键对象), 另一个对象用作键值对的值(值对象)。 举个例子, 以下 SET 命令在数据...
压缩列表是一种为节约内存而开发的顺序型数据结构。 压缩列表被用作列表键和哈希键的底层实现之一。 压缩列表可以包含多个节点,每个节点可以保存一个字节数组或者整数值。 添加新节点到压缩列表, 或者从压缩列表中删除节点, 可能会引发连锁更新操作,...
表 7-4 列出了所有用于操作压缩列表的 API 。 表 7-4 压缩列表 API 函数 作用 算法复杂度 ziplistNew 创建一个新的压缩列表。 ziplistPush 创建一个包含给定值的新节点, 并将这个新节点添加到压缩列表的表...
前面说过, 每个节点的 previous_entry_length 属性都记录了前一个节点的长度: 如果前一节点的长度小于 254 字节, 那么 previous_entry_length 属性需要用 1 字节长的空间来保存这个长度值。 如...
每个压缩列表节点可以保存一个字节数组或者一个整数值, 其中, 字节数组可以是以下三种长度的其中一种: 1、 长度小于等于 63 ()字节的字节数组; 2、 长度小于等于 16383 () 字节的字节数组; 3、 长度小于等于 4294967...