gpt4 book ai didi

java - spring-data-redis:在一个事务中,get操作会返回null

转载 作者:可可西里 更新时间:2023-11-01 10:54:00 28 4
gpt4 key购买 nike

在使用 redis(4.0) 和 spring-data-redis 进行项目时。

似乎在事务中,get操作在java程序中会返回null。

例如 HashOperationget() 方法在 multi()exec().
但是如果把get()放在multi()之前,就可以获取到值。

那么,这是为什么?

最佳答案

经过测试和思考,我认为这是合理的行为,因为事务是作为原子操作在redis中执行的,不可能通过网络将事务中间的值返回给客户端,因此null 是合理的。

在交易执行后,exec() 方法将所有值作为 List 返回。

因此,在调试时,在事务中间,该值应该为空,因为它还没有执行。


建议:

如果事务中的计算需要从 redis 中读取值,则只需在 multi() 之前先读取这些值。

然后在multi()exec()之间只做更新操作,不做读操作。

关于java - spring-data-redis:在一个事务中,get操作会返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47707628/

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