Slide 8
Slide 8 text
数据结构
哈希算法:当一个新的键值对添加到字典里面时,程序会根据键计算出哈希值和索引值,然后根据索引值,将键值对
的哈希表节点放到哈希表数组的指定索引上去。
键冲突解决:当两个或以上key分配哈希数组的同一个索引上面,Redis的哈希表使用链地址法(separate chaining)
来解决冲突,每个哈希节点都有一个next指针,被分配到同一个索引的多个节点构成单向链表,就解决了键哈希冲突
的问题。
rehash:随着操作变化,哈希表内的键值对会不断增多或减少,需要将哈希表的负载因子(load factor)维持在一
个合理的范围内,需要对哈希表的大小进行相应扩展或收缩。load_factor=ht[0].used / ht[1].size
自动rehash触发条件:
1. 服务器没有执行bgsave或者bgrewriteaof命令,负载因子大于等于1
2. 服务器正在执行bgsave或者bgrewriteaof命令,负载因子大于等于5
字典