建议看看源码以及分析,这完全是数据结构之美,时间和空间的权衡和折中。例如 hash 折中数据结构,元素少的时候,内存存储用的是 ziplist,这样是用时间换空间,但是元素多的时候,用的是 dict,又是用空间换时间。还用了我认为最简单漂亮的数据结构跳表。
左边是 Redis 暴露给用户的数据结构:
String
Hash
List
Set
Sort Set 右边是 Redis 内部实现的数据结构:
sds
dict
ziplist
quicklist
skiplist
intset
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.