不得不說,最近在使用redis的incr的功能的時候,着實是踩了不少的坑啊!
前面我寫的一篇文章里面,我提到通過incr產生的鍵在用普通的get的方式去獲取的時候,是獲取不到的,所以我不得不通過特殊的代碼指定key來獲取,而這個操作在我的心里面其實埋上了一顆疑問的種子,就是刪除的時候會不會也存在問題。所以機智的我產生了部分數據,並調取刪除方法嘗試刪除,果不其然,刪除失敗了。真的是不知道是這個Spring boot引用的代碼內部實現的問題還是怎么樣?但是主要我們還是要將視角聚焦在怎么先解決這個問題,所以我看了下他那個關於incr方面的RedisAtomicLong的內部實現,結果呵呵~它內部並沒有刪除的代碼,但是只有設置和獲取相關數據的代碼,而當中過期時間的設置最終讓我警覺起來,所以我最終實現了一個代碼:
1 public void removeAtomicLong(String key) { 2 RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory()); 3 entityIdCounter.expire(0, TimeUnit.MILLISECONDS); 4 }
結果功能實現~~!
