当前位置: 首页 > 面试题库 >

如何使用Redis自动删除与模式匹配的键

解柏
2023-03-14
问题内容

在我的Redis DB中,我有很prefix:<numeric_id>多哈希值。

有时我想从原子上清除它们。我如何在不使用某些分布式锁定机制的情况下做到这一点?


问题答案:

redis 2.6.0开始,您可以运行自动执行的lua脚本。我从来没有写过,但是我认为它看起来像这样

EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 prefix:[YOUR_PREFIX e.g delete_me_*]

警告 :如Redis文档所述,由于性能问题,该keys
命令不应用于生产中的常规操作,该命令旨在用于调试和特殊操作。阅读更多

请参阅EVAL文档。



 类似资料:
  • 我读了很多帖子提到删除匹配模式的键。我想删除与特定模式不匹配的键。

  • 问题内容: 我已经在这个问题中尝试过方法,但是由于我在集群模式下工作,因此它不起作用,redis告诉我: (错误)CROSSSLOT请求中的键未哈希到同一插槽 问题答案: 该问题的答案尝试在一个中删除多个键。但是,与给定模式匹配的键可能不会位于同一插槽中,并且如果这些键不属于同一插槽,则Redis Cluster不支持多键命令。这就是为什么您收到错误消息。 为了解决此问题,您需要一对一地使用以下密

  • 在Redis-Py中,我如何计算与模式匹配的键数?我发现了一些方法scan、scan_iter,但它们使用键名的模式进行搜索。 我需要的示例:

  • 问题内容: 我已经使用Python和Django建立了一个在线画廊。我刚刚开始添加编辑功能,从旋转开始。我使用sorl.thumbnail按需自动生成缩略图。 当我编辑原始文件时,我需要清理所有缩略图,以便生成新的缩略图。每个图片有三到四个(我在不同场合有不同的图片)。 我 可以 在文件变量中进行硬编码…但是这很混乱,如果我改变工作方式,则需要重新访问代码。 理想情况下,我想进行正则删除。用正则表

  • 问题内容: 通常,我得到键集,然后使用外观删除每个键/值对。 是否可以仅通过模式删除所有键? 即: 问题答案: 对于Jedis而言,“按模式删除”似乎基本上是在获取特定模式的所有键,然后在其中循环遍历。 即