回答

收藏

如何使用Redis以原子方式删除与模式匹配的键

技术问答 技术问答 228 人阅读 | 0 人回复 | 2023-09-11

在我的 Redis 数据库中,我有许多prefix:哈希值。
$ O: v# Y' f) [有时我想用原子清除它们。如何在不使用某些分布式锁定机制的情况下执行此操作?
* A2 e  M. J7 m- S- S                                                                5 W/ v/ B: R" k+ P- Y; W
    解决方案:                                                               
' V3 ?, k8 n. J+ [                                                                在 bash 中执行:
7 l- o; k9 o3 \/ q, P8 ?redis-cli KEYS "prefix:*" | xargs redis-cli DEL更新9 z3 v' `' ], O  ?3 A; F
好吧,我明白了。这种方法如何:存储当前的附加增量前缀,并将其添加到您的所有键中。: ?. k% w7 s. f! h$ I5 }) A
你有这样的价值观:9 }/ G, P& X9 D) N, J
prefix_prefix_actuall = 2prefix:2:1 = 4prefix:2:2 = 10需要清除数据时,先更改 prefix_actuall(如设置 prefix_prefix_actuall = 3)因此,您的应用程序将新数据写入键 prefix:3:1 和 prefix:3:2。然后你可以安全地从 prefix:2:1 和 prefix:2:2 获取旧值并清除旧键。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则