Redis随笔-rename效率问题

2018-11-12
阅读 3 分钟
9.6k
rename是redis中给key重命名命令,rename key newkey的意思就是将key重命名为newkey。大部分文档在介绍rename的时候只将它描述成一个时间复杂度为O(1)的命令,却忘了说明它可能导致的性能问题(涉及覆盖旧值的时候 时间复杂度应该是O(1)+O(M))。

Redis源码分析-压缩列表ziplist

2018-11-04
阅读 11 分钟
7.6k
ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是quicklist)这些键的常规底层实现如下:

Redis3.2源码分析-整数集合intset

2018-03-21
阅读 10 分钟
2.6k
intset是Redis集合的底层实现之一,当存储整数集合并且数据量较小的情况下Redis会使用intset作为set的底层实现。当数据量较大或者集合元素为字符串时则会使用dict实现set。intset将整数元素按顺序存储在数组里,并通过二分法降低查找元素的时间复杂度。数据量大时,依赖于“查找”的命令(如SISMEMBER)就会由于O(logn)的...