gpt4 book ai didi

java - ReactiveRedisTemplate opsForHash put 不会覆盖值

转载 作者:行者123 更新时间:2023-12-03 06:44:39 27 4
gpt4 key购买 nike

ReactiveRedisTemplate opsForHash put 不会覆盖该值。

redisTemplate.opsForHash().put("NAMESPACE", id, personInfo.toByteArray()).
map(resBoolean -> {
return resBoolean;
}).onErrorResume(e -> {
return Mono.just(false);
});
只有当我第一次使用新键调用上述方法时,该值才存储在 Redis 中。当我用相同的值或不同的值第二次调用相同的方法时,我得到了错误的返回。
redis put 不会覆盖同一个键的值吗?是因为,为键存储的每个值都是不可变的吗?
如果我删除缓存值,我可以再次设置该值,这是显而易见的。请帮忙回答。

最佳答案

不幸的是,ReactiveRedisTemplate 的文档没有描述返回的 Boolean场的意思。
我们可以依靠official Redis documentation :

Return value Integer reply:

The number of fields that were added.


很可能 ReactiveRedisTemplate 将正整数转换为真,将 0 转换为假。所以返回的 false 值只是意味着该字段不是新添加的,只是被覆盖了,所以你的代码可能工作正常。
try.redis.io 上试试这个例子看看这个在行动:
> HSET myhash field1 "Hello"
(integer) 1
> HSET myhash field1 "Hello2"
(integer) 0
> HGET myhash field1
"Hello2"

关于java - ReactiveRedisTemplate opsForHash put 不会覆盖值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63460208/

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