我写了一个愚蠢的 Java 示例程序并做了一些实验,所以让我回答你实际提出的问题和我认为你试图提出的问题。
假设缓存中尚不存在“my-key”。getAtomicLong() 返回什么?
-的一个实例,RAtomicLong
因为您将来可能会对incrementAndGet
键/值做一些事情(比如或其他事情)。
如果“my-key”不存在,userNumber.get() 返回什么?
零。是的,不是null
,是的,不是例外,只是 0。这在我的测试程序中相当令人惊讶。
关于Reddison API真正有趣的部分是它非常依赖于原子的东西——如果你可以从多个线程更新一个值,那就太好了——但似乎没有记录最简单的用例:我想从 Redis 读取或写入它不是数字/不是原子/我的线程或数据的结构不会相互干扰。
这似乎是雷迪森的RBucket
东西。
如果对象不在 Redis 中,那将返回 a 。null
RBucket<String> back = client.getBucket("foo");
String value = back.get();
if (value == null) {
System.out.println("NOPE, NULL");
} else {
System.out.println(value);
}
我真的希望能够更好地记录这一点 - 回首往事,我将“桶”视为东西的容器,但有一段时间我认为它意味着一些高级 Redis 模式,而不是“通用类型值的持有者”。
(如果你真的想要花哨的东西,上面有一个很棒的 baeldung artigle)。