RedisTemplate中的execute方法如何使用



theme: vue-pro

這是我參與11月更文挑戰的第1天,活動詳情查看:2021最后一次更文挑戰

溫故才能知新(復習一下)

上篇文章我們學習了RedisTemplate中的execute的概念,理解了execute的概念。

execute提供了基礎的操作Redis方法的實現,為其他特定數據類型操作方法提供了基礎方法的實現。

今天我們是要來學習一下RedisTemplate中的execute方法具體使用方法,並且提供出相應的代碼實現,一起來學習吧。

如何正確使用execute方法

execute(RedisCallback\ action)

public <T> T execute(RedisCallback<T> action)

此方法需要傳入的參數時一個RedisCallback對象實例,實際是一個Redis連接成功的回調方法,一般都是以下方式去調用的。

通過Redis的鏈接來操作Redis數據庫中的鍵值。

代碼使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); });

execute(RedisCallback\ action, boolean exposeConnection)

public <T> T execute(RedisCallback<T> action, boolean exposeConnection)

大家可以看得出來,這個方法同上面的方法,只是多了一個exposeConnection的布爾類型參數,那么這個參數是干什么的?有什么作用呢?

exposeConnection參數的含義是是否要暴露connection,如果為true,那么就可以在回調函數中使用當前連接connection對象。

代碼使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); }, true);

execute(RedisCallback\ action, boolean exposeConnection, boolean pipeline)

public <T> T execute(RedisCallback<T> action, boolean exposeConnection, boolean pipeline)

如果你看了這幾個方法的源碼,你就會發現,前面三個execute方法的核心其實就是這個,因為前兩個方法依然會調用這個方法,只不過多了兩個參數值而已。

exposeConnection我們已經說過了,pipeline的含義則是是否開啟管道,管道是可以承載一定數據的鏈路。

代碼使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); }, true, false);

execute(SessionCallback\ session)

public <T> T execute(SessionCallback<T> session)

這個方法有所不同,因為參數和前三個參數不一樣了,之前的回調函數是RedisCallback,這個方法的回調是SessionCallback回調對象。

是可以傳入SessionCallback回調對象的方法。

注意

這里要注意一點,雖然execute方法是底層方法,但是並不代表一定要用,我們在日常開發中其實最好還是使用基於execute方法封裝的一些特定數據類型的操作Redis方法,因為execute方法使用起來並沒有其他的方法簡單,反而更容易出錯。

小結

今天學習了RedisTemplate的execute相關的幾個重載方法是如何使用的,不知道大家有什么樣的心得呢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM