第 8 章《对象》 ================== 64 页 ------------- 在这一页的倒数第二段: 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度大于 ``32`` 字节, 那么字符串对象将使用一个简单动态字符串(SDS)来保存这个字符串值, 并将对象的编码设置为 ``raw`` 。 在本书定稿之后, Redis 将这个值从 ``32`` 改为了 ``39`` , 所以我们也需要进行相应的更新, 修改之后的内容为: 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度大于 ``39`` 字节, 那么字符串对象将使用一个简单动态字符串(SDS)来保存这个字符串值, 并将对象的编码设置为 ``raw`` 。 受此影响, 65 页的图 8-2 也要更新为以下模样(图中的 ``len`` 属性有改动): .. graphviz:: digraph { label = "\n 图 8-2 raw 编码的字符串对象"; rankdir = LR; node [shape = record]; redisObject [label = " redisObject | type \n REDIS_STRING | encoding \n REDIS_ENCODING_RAW | <ptr> ptr | ... "]; sdshdr [label = " <head> sdshdr | free \n 0 | len \n 43 | <buf> buf"]; buf [label = " { 'L' | 'o' | 'n' | 'g' | ... | 'k' | 'i' | 'n' | 'g' | ' ' | '.' | '.' | '.' | '\\0' } " ]; // redisObject:ptr -> sdshdr:head; sdshdr:buf -> buf; } 而创建图 8-2 所示字符串的代码也要改为: :: redis> SET story "Long, long, long ago there lived a king ..." OK redis> STRLEN story (integer) 43 redis> OBJECT ENCODING story "raw" 感谢 `xp <http://redisbook.com/en/latest/preview/object/string.html#comment-1481763423>`_ 反馈这个问题。 65 页 ------------ 在这一页的中间开头第一段: 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度小于等于 ``32`` 字节, 那么字符串对象将使用 ``embstr`` 编码的方式来保存这个字符串值。 在本书定稿之后, Redis 将这个值从 ``32`` 改为了 ``39`` , 所以我们也需要进行相应的更新, 修改之后的内容为: 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度小于等于 ``39`` 字节, 那么字符串对象将使用 ``embstr`` 编码的方式来保存这个字符串值。 感谢 `xp <http://redisbook.com/en/latest/preview/object/string.html#comment-1481763423>`_ 反馈这个问题。 75 页 ------------ 在 8.5 节开头的介绍内容中, 第二段代码: :: redis> SAD Dfruits "apple" "banana" "cherry" (integer)3 中的 ``SADD`` 命令印刷出错, 正确的代码应该为: :: redis> SADD fruits "apple" "banana" "cherry" (integer)3 感谢 `zhkzyth <http://www.douban.com/people/zhkzyth/>`_ 反馈这个错误。 77 页 ----------- 8.6 节开头的第二段: ``ziplist`` 编码的压缩列表对象使用压缩列表作为底层实现, …… 中的“压缩列表对象”有误,应该改为“有序集合对象”才对, 以下是修正之后的内容: ``ziplist`` 编码的有序集合对象使用压缩列表作为底层实现, …… 80 页 ----------- 本页的最后一句: 因为有序集合键的值为哈希对象, 所以用于有序集合键的所有命令都是针对哈希对象来构建的, 表 8-1 列出了其中一部分有序集合键命令, 以及这些命令在不同编码的哈希对象下的实现方法。 这里的“哈希对象”应该全部改为“有序集合对象”才对, 以下是修正后的正文: 因为有序集合键的值为有序集合对象, 所以用于有序集合键的所有命令都是针对有序集合对象来构建的, 表 8-1 列出了其中一部分有序集合键命令, 以及这些命令在不同编码的有序集合对象下的实现方法。 感谢 Andy 反馈这个问题。