首页 > 解决方案 > Redis SCAN 永远不会终止的可能性

问题描述

Redis SCAN 文档中有这样的注释:

只有当迭代集合的大小保持在给定的最大大小范围内时,SCAN 算法才会保证终止,否则迭代一个总是增长的集合可能会导致 SCAN 永远不会终止完整的迭代。

在 Redis 用于存储会话(因此可以不断扩展)的场景中,发生这种情况的可能性有多大?在生产中使用 SCAN 进行完整迭代是否安全(例如清除具有给定前缀的一组键)?

标签: redis

解决方案


为了防止扫描迭代花费太长时间,您可以在开始扫描之前获取键空间大小,并在扫描了那么多键后终止扫描。


推荐阅读