当前位置: 首页 > 知识库问答 >
问题:

Redis在哈希值中按模式删除哈希键

孔波
2023-03-14
redis> HSET myhash field1 "Wild"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HSET myhash field2 "Window"
(integer) 1

我想在命令行上这样做,所以像这样的事情会很好:

redis-cli -n 0 KEYS someFoo* | xargs redis-cli -n 0 DEL

上面的方法当然不适合散列。所以最后我需要打电话

redis-cli -n 0 hdel myhash field1 
redis-cli -n 0 hdel myhash field3 

以自动化的方式。

共有1个答案

曹臻
2023-03-14

不幸的是,我认为实现这一目标的唯一方法是使用hgetall,或者更好的方法hscan

redis> HGETALL myhash
1) "field1"
2) "Wild"
3) "field2"
4) "Window"

理论上,您可以将其插入到与regex匹配偶数行的对象中,并在匹配前发出一个或多个带有奇数行的HDEL命令。这对我的bash技能来说有点过分了。也许lua脚本会更容易一些。

如果哈希值非常大,则确实应该使用hscanhgetAll在获取数据时将阻塞。

 类似资料:
  • 问题内容: 我有一堆带有前缀的散列,例如:“ prefix:” 在每个哈希值下面是一堆键,例如:“ cc_XX”,其中“ XX”是2个字母的代码。 我需要一些如何遍历所有redis散列的方法,并删除每一个cc_XX子键的某些方法,并且正在寻找一种cli / lua方式来做到这一点(两者都不好)。 任何建议将不胜感激。 问题答案: 下面的EVAL脚本应执行所需的操作: 您需要通过提供以下参数来调用它

  • 问题内容: 我要在我的一个项目中对分页进行ajax化,并且由于我希望用户能够为当前页面添加书签,因此我通过哈希附加页面编号,例如: 并且多数民众赞成在它工作正常,一切,除了,当页码为1时,我不想成为,我只是希望它成为 我尝试了以下变体: 的作品,但网址现在就像,我不很哈希那里。 根本不使用window.location.hash,但是当用户从第3页回到第1页时,他位于第1页,但是url仍然是因为我

  • hdel key field 删除指定的hash field

  • 在许多Redis教程中(比如本教程),数据存储在一个集合中,但多个值组合在一个字符串中(即,用户帐户可以作为两个条目“user:1000:username”和“user:1000:password”存储在集合中)。 然而,Redis也有哈希。似乎拥有一个“user:1000”散列会更有意义,它包含一个“username”条目和一个“password”条目。您只需直接在哈希中访问它们,而不是连接字符

  • 问题内容: 我在Redis中存储MessagePacked哈希时遇到问题。我在下面粘贴了一个测试用例。从Redis中提取打包数据并对其进行解压缩时,哈希会略有损坏。当哈希值超出一定长度时,似乎会发生这种情况,尽管我不能肯定地说。 我正在使用Redis 2.4.17(默认配置),Ruby 1.9.3p194,MessagePack 0.4.7和Redis gem 3.0.2。使用节点也会发生相同的问

  • 问题内容: 我打算开始使用常规密钥的哈希哈希。但是我在Redis wiki中找不到有关哈希键的多重获取的任何信息。Redis支持这种命令吗? 谢谢。 问题答案: 您可以查询哈希或管道中的任何键,即在对Redis实例的一个请求中。实际的实现取决于您的客户端,但是使用redis-py时,它看起来像这样: 客户端将使用3个命令发出一个请求。这与一次将多个值添加到集合中的技术相同。 在http://red