gpt4 book ai didi

java - 根据特定值从 Redis 哈希中删除多个项目

转载 作者:IT王子 更新时间:2023-10-29 06:16:09 26 4
gpt4 key购买 nike

根据项目的值是否包含特定子字符串,从散列中删除一堆项目的最有效方法是什么?据我所知,并没有真正的方法可以在一个简单的 block 中做到这一点。我必须从字面上获取 Java 列表中该散列的所有值,然后遍历该列表直到找到我需要的内容,然后从散列中删除它的键,并一遍又一遍地重复相同的过程。

我尝试的另一种方法是将对哈希项的 id 引用放在单独的列表中,以便稍后通过一次调用,我可以获取应删除的项的 id 列表。那是好一点,但是,我使用的 redis 实现 (Jedis) 仍然不支持删除多个哈希键,所以我又一次束手无策。

Redis 不支持参照完整性,对吗?这意味着,好的,存储在 Redis 列表中的键是对散列中项目的引用,所以如果我删除列表,散列中的相应项目将被删除。 Redis 中没有这样的东西,对吧?

我将不得不经历这个循环并分别删除每一个项目。我希望至少有类似 block 的东西,我可以在其中收集所有 1000 个命令,并在一个完整的调用中发送它们,而不是 1000 个单独的命令。

最佳答案

I wish at least there was something like a block,
where I could collect all 1000 commands, and send them in one entire call,
rather than 1000 separate ones.

这就是交易的目的:http://redis.io/topics/transactions

使用管道可以让来自其他连接的客户端的可能命令在管道命令之间发出,因为它只保证您的客户端发出命令而不等待回复,不保证原子性。

事务中的命令(即 MULTI/EXEC 之间)是自动发出的,我想这就是您想要的。

关于java - 根据特定值从 Redis 哈希中删除多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com