标签: redis
Redis SCAN文档中有以下说明:
只有在迭代集合的大小保持在给定的最大大小范围内时,才能保证SCAN算法终止。否则,对总是增长的集合进行迭代可能会导致SCAN从不终止完整迭代。
在使用Redis存储会话(因此可以不断扩展)的情况下,这种情况发生的可能性有多大?使用SCAN进行生产中的全迭代是否安全(例如清除具有给定前缀的一组键)?
答案 0 :(得分:1)
为防止扫描迭代花费太长时间,可以在开始扫描之前获取密钥空间的大小,并在扫描了那么多密钥之后终止扫描。