reactiveredistemplate opsforhash put不会覆盖该值。
redisTemplate.opsForHash().put("NAMESPACE", id, personInfo.toByteArray()).
map(resBoolean -> {
return resBoolean;
}).onErrorResume(e -> {
return Mono.just(false);
});
只有当我第一次用一个新键调用上述方法时,该值才会存储在redis中。当我用相同的值或不同的值第二次调用相同的方法时,返回false。
redis put不会覆盖同一个键的值吗?这是因为,为键存储的每个值都是不可变的吗?
如果我删除缓存值,我可以再次设置值,这是显而易见的。请帮忙回答。
1条答案
按热度按时间wj8zmpe11#
不幸的是,reactiveredistemplate的文档没有描述返回的内容
Boolean
场意味着。我们可以依赖官方redis文档:
返回值整数回复:
添加的字段数。
很可能reactiveredistemplate将正整数转换为true,将0转换为false。因此,返回的false值只是意味着字段不是新添加的,而是被覆盖的,因此您的代码可能可以正常工作。
请在try.redis.io上尝试此示例,以查看此操作: