Java 基于某个值从Redis哈希中删除多个项

Java 基于某个值从Redis哈希中删除多个项,java,spring,redis,jedis,Java,Spring,Redis,Jedis,根据项的值是否包含特定的子字符串,从散列中删除一组项的最有效方法是什么?据我所知,在一个简单的块中并没有真正的方法来实现这一点。我必须抓取Java列表中该散列的所有值,然后在这个列表上迭代,直到找到我需要的,然后从散列中删除它的键,并反复重复相同的过程 我尝试的另一种方法是将对散列项目的id引用放在一个单独的列表中,以便稍后,通过一个调用,我可以为应该删除的项目获取一个id列表。这稍微好一点,但我使用的redis实现(Jedis)仍然不支持删除多个散列键,所以我还是束手无策 Redis不支持引用

根据项的值是否包含特定的子字符串,从散列中删除一组项的最有效方法是什么?据我所知,在一个简单的块中并没有真正的方法来实现这一点。我必须抓取Java列表中该散列的所有值,然后在这个列表上迭代,直到找到我需要的,然后从散列中删除它的键,并反复重复相同的过程

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

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


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

删除Redis列表中的ID不会影响Redis散列字段。加快速度考虑。绝地支持…

删除Redis列表中的ID不会影响Redis散列字段。加快速度考虑。绝地武士支持

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.
这就是交易的目的:

使用管道将允许在管道命令之间发出来自其他连接客户端的可能命令,因为它只保证您的客户端在不等待答复的情况下发出命令,而不保证原子性

事务中的命令(即在/之间)是以原子方式发出的,我想这就是您想要的

这就是交易的目的:

使用管道将允许在管道命令之间发出来自其他连接客户端的可能命令,因为它只保证您的客户端在不等待答复的情况下发出命令,而不保证原子性


事务中的命令(即在/之间)是以原子方式发出的,我想这是您想要的。

谢谢。我想也是这样。谢谢。我想这也是一条路。