Redisson中getAtomicLong对应key不存在时的返回行为相关问题
问题解答
- 针对第一个问题:当Redis中不存在名为
my-key的键时,调用redissonClient.getAtomicLong("my-key")会返回非空的RAtomicLong实例。该方法仅在本地创建绑定对应键名的代理对象,不会立刻发起Redis请求查询键是否存在,因此无论对应键是否存在都不会返回null。 - 针对第二个问题:若
my-key实际不存在于Redis中,调用userNumber.get()会返回0。这是Redisson对齐Redis原子计数指令的默认逻辑,不存在的原子数键读取时默认返回初始值0,不会抛出异常。
额外补充:如果业务需要区分「默认返回的0」和「实际存入的0」,可以先调用
userNumber.isExists()方法判断键是否真实存在,再做后续逻辑处理。
内容的提问来源于stack exchange,提问作者Tyler M.
相关产品推荐
相关产品推荐

