在 lua 脚本中使用扫描命令



我正在尝试使用 Hiredis 和 Redis 在我的系统中实现 2 种行为。 1( 使用 SCAN 命令时,通过发布事件而不是通过返回的数组获取具有模式的所有密钥。 (我的系统仅适用于发布事件,即使对于 get,也需要坚持这种行为( 2(删除所有带有模式的键

阅读手册后,我明白"扫描"命令是我的朋友。 我有两种方法,不确定优缺点是什么:

1( 使用 Lua 脚本,该脚本将调用 SCAN,直到我们得到 0 作为我们的光标和找到的每个条目的发布事件/删除键。 2( 使用 Lua 脚本,但返回游标作为返回代码,并使用新游标从 hiredis 客户端调用 LUA 脚本,直到它变为 0。

或者也许其他想法会很好。

我的数据库根本不是休..不超过500k个条目,键/值小于100字节。

谢谢!

选项 1 在 Lua 脚本中运行可能并不理想,因为它会阻止所有其他请求的执行。SCAN应用程序中运行时效果最佳,因此 Redis 仍然可以处理其他请求。

最新更新