赞
踩
因为对hash太熟悉了(java中的HashMap),所以忽略了前面几段对于hash基础的讲解。
在原hash结构存在两个数组,t0与t1。
扩容:增加t1数组为t0的两倍 --> 将t0的数据复制到t1上 -->将t1赋值给t0 --> 将t1置为空。
对于上述的将t0的数据复制到t1上需要重新计算key的所在位置,这部分便称之为rehash,而redis的rehash操作是渐进式的,会将rehash操作分摊到每一次的添加、查找、更新、删除上,新增只在t1上进行。
略,原书P36。
把一大段耗时很长的操作分解成很多段小操作上是处理很多问题时很常见的优化方式,可以有效的提高访问速度。将大问题分解成小问题也是解决问题时的有效手段。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。