回答

收藏

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

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

在我的 Redis 数据库中,我有许多prefix:哈希值。
$ N3 R6 H. m: y# M: W有时我想用原子清除它们。如何在不使用某些分布式锁定机制的情况下执行此操作?" ]+ W6 o, c' D( {. q% W
                                                                " L  U, X$ l, e* n
    解决方案:                                                                ( L9 P) B' Y: d, y
                                                                在 bash 中执行:- }9 N. E3 W9 q2 Z
redis-cli KEYS "prefix:*" | xargs redis-cli DEL更新% ^7 \6 L0 \3 N( N$ Q& k& s1 e
好吧,我明白了。这种方法如何:存储当前的附加增量前缀,并将其添加到您的所有键中。: s8 \1 T7 `, l* N5 C
你有这样的价值观:
, [$ A) U, d! Z, ]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 获取旧值并清除旧键。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则