三十五、Redis 字符串对象
字符串对象的编码可以是 int 、 raw 或者 embstr 。 如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr属性里面(将 void* 转换成 l...
字符串对象的编码可以是 int 、 raw 或者 embstr 。 如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr属性里面(将 void* 转换成 l...
Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对时, 我们至少会创建两个对象, 一个对象用作键值对的键(键对象), 另一个对象用作键值对的值(值对象)。 举个例子, 以下 SET 命令在数据...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
压缩列表是一种为节约内存而开发的顺序型数据结构。 压缩列表被用作列表键和哈希键的底层实现之一。 压缩列表可以包含多个节点,每个节点可以保存一个字节数组或者整数值。 添加新节点到压缩列表, 或者从压缩列表中删除节点, 可能会引发连锁更新操作,...
表 7-4 列出了所有用于操作压缩列表的 API 。 表 7-4 压缩列表 API 函数 作用 算法复杂度 ziplistNew 创建一个新的压缩列表。 ziplistPush 创建一个包含给定值的新节点, 并将这个新节点添加到压缩列表的表...
前面说过, 每个节点的 previous_entry_length 属性都记录了前一个节点的长度: 如果前一节点的长度小于 254 字节, 那么 previous_entry_length 属性需要用 1 字节长的空间来保存这个长度值。 如...
每个压缩列表节点可以保存一个字节数组或者一个整数值, 其中, 字节数组可以是以下三种长度的其中一种: 1、 长度小于等于 63 ()字节的字节数组; 2、 长度小于等于 16383 () 字节的字节数组; 3、 长度小于等于 4294967...
压缩列表是 Redis 为了节约内存而开发的, 由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构。 一个压缩列表可以包含任意多个节点(entry), 每个节点可以保存一个字节数组或者一个整数值。 图 7-1 展示了压...
整数集合是集合键的底层实现之一。 整数集合的底层实现为数组, 这个数组以有序、无重复的方式保存集合元素, 在有需要时, 程序会根据新添加元素的类型, 改变这个数组的类型。 升级操作为整数集合带来了操作上的灵活性, 并且尽可能地节约了内存。 ...
表 6-1 列出了整数集合的操作 API 。 表 6-1 整数集合 API 函数 作用 时间复杂度 intsetNew 创建一个新的整数集合。 intsetAdd 将给定元素添加到整数集合里面。 intsetRemove 从整数集合中移除给...
整数集合不支持降级操作, 一旦对数组进行了升级, 编码就会一直保持升级后的状态。 举个例子, 对于图 6-11 所示的整数集合来说, 即使我们将集合里唯一一个真正需要使用 int64_t 类型来保存的元素 4294967295 删除了, 整...