【redis源码学习】看看redis的“哈希表”实现( 三 )


每次对100个节点进行操作 。
迭代器
redis 的迭代器也是很有特色的 。它不仅提供了我们平时使用的迭代器,还提供了另一种边迭代边删除数据的迭代器 。
其实迭代数据和删除数据操作分开来看都不难,但是鉴于redis是单线程操作,所以需要尽可能的将多个操作合成少量操作,以此提高效率,于是就出现了这种“新型迭代器” 。
其实把俩操作合在一起,也很简单嘛 。但是放在这么一个场景了,那就不简单了 。毕竟redis是存在渐进式的 。你说我遍历一个,你一次,这成何体统?这数据不就乱套了嘛 。
所以,这个安全迭代器在迭代的时候,会促使被迫暂停营业 。
间接迭代,防止大批量数据查询卷死自己
那,如果有人大批量的获取数据呢?这迭代器不得累死吗?迭代器累死就算了,别把整个redis给累死啊,那问题就大了 。
所以,redis采用了间接迭代的方式 。
这里稍微提一下,可以参考MySQL的批量插入 。
使用游标啦 。。
【【redis源码学习】看看redis的“哈希表”实现】吃饭吃饭,不然它还没卷死我就先饿死了 。。