Redis 底层实现了压缩列表这种数据结构,并且会作为列表、哈希和有序集合的底层实现之一。
压缩列表的好处不用多说,可以省内存。
但是缺点也很明显,顺序存储结构的那些缺点它都有,另外其内部 entry 还是非固定长度的,所以其大部分操作都是 O(n) 级别的,这在列表结构还算可以,哈希表和有序集合中这明显不行。
我们平时优化都是以空间换时间,压缩列表这种以时间换空间的反向操作是不是有问题啊?感觉有些仗着内存存储速度快在瞎搞。 另外,Redis 默认都是在数据元素比较短或者数量比较少的时候才会使用压缩列表,元素短且少,这能省的内存说明就很少。如果省不了太多内存,那使用它的意义不就没了?
有没有懂的老哥给科普下压缩列表是否真的有价值,我现在感觉它的价值真的很低。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.