概念:在扩容时不会一次性对所有的key进行rehash,而是将key的rehash操作分散延迟到其它操作(哈希表的查找、更新、删除)中。
优点:避免由于大量的key在同一时间段进行rehash操作导致服务短暂无响应的问题。
过程:在增量式的rehash过程中,会使用到两张哈希表:
查找:先从老表中查找,再从新表中查找,此外还会对一些key进行rehash操作。
新增:新增的键值对添加到新表中。
集合(set):
整数集合(intset):
结构:有序、不重复的整数集。
1>查找时间复杂度为O(logn)
2>插入时间复杂度为O(n)
优点:占用的内存远小于hashtable,
应用:当元素都是整数 且 元素个数小于set-max-intset-entries(默认512)时,使用intset作为集合的内部实现。
哈希表(hashtable):当无法满足intset的条件时,使用hashtable作为集合的内部实现。
有序集合(zset):
说明:redis给有序集合中的每个元素设置一个分数(score)作为排序的依据。
压缩列表(ziplist):
应用:当元素个数小于zset-max-ziplist-entries(默认128个) 且 每个元素的值都小于zset-max-ziplist-value(默认64字节)时,使用ziplist作为有序集合的内部实现。
跳跃表(skiplist):










