在我嘗試使用redis學習寫分布式鎖的時候發現stringRedisTemplate.opsForValue().setIfAbsent(lockKey,clientId,30,TimeUnit.SECONDS);回傳值為null
api顯示回傳值為Boolean導致我下面邏輯沒法進行
請問這是官方bug嗎? 有了解是怎么回事的大哥嗎?
附上測驗代碼
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads() {
// 此處應該回傳true或者false 但是回傳了null 并且設定生效了
Boolean aBoolean = stringRedisTemplate
.opsForValue()
.setIfAbsent("key", "value",100,TimeUnit.SECONDS);
System.out.println(aBoolean);
// Boolean key = stringRedisTemplate.expire("key", 10, TimeUnit.SECONDS);
// System.out.println(key);
}
uj5u.com熱心網友回復:

我專門試了一下,沒問題啊,一模一樣的代碼,我插入成功回傳true了
uj5u.com熱心網友回復:
是因為匯入的jar包不同嗎?
uj5u.com熱心網友回復:
好吧 知道什么原因了
引入了redisson依賴就回傳null 去掉這個就好了 不知道為啥
uj5u.com熱心網友回復:
如果兩個都用到了,沒法去掉怎么辦轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19314.html
標籤:Java EE
