網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好

JedisConnectionFactory如何獲取Redis

欄目: IT技術 / 發佈於: / 人氣:1.97W

Spring對Redis的支持是通過Spring Data Redis實現的,JedisConnectionFactory為我們提供了Redis的一種Java客户端Jedis。本文主要為大家介紹使用工廠類獲取Jedis的兩種方式,以及使用過程中存在的問題,希望能為大家提供一些思路。

JedisConnectionFactory如何獲取Redis

工具/材料

IntelliJ IDEA

操作方法

首先我們需要編輯Spring的配置文件erties,添加Redis的相關配置,這些配置在代碼中需要注入,用來生成JedisConnectionFactory的Bean。

JedisConnectionFactory如何獲取Redis 第2張

接下來我們寫一個配置類,該配置類上需要添加@Configuration註解,我們在這個類中通過@Value註解注入erties配置文件中的部分需要的屬性,其中{}用於接收屬性值,在屬性名冒號後面的值是默認值,若讀取不到該屬性則使用默認值。我們在該類中創建JedisConnectionFactory的Bean,在這個Bean中設置讀取到的屬性值。

JedisConnectionFactory如何獲取Redis 第3張

接下來我們創建一個RedisServer的類,主要用於獲取Redis以及實現部分Redis操作的方法。在該類中我們可以使用@Autowired註解注入JedisConnectionFactory的Bean。下圖中獲取Redis客户端Jedis的方法是我們推薦的方法,使用該方法我們既獲取到了Jedis實例又使用的連接池,將Jedis實例交由連接池管理,不用太擔心併發操作導致的Redis不可用的情況。最後再附上Jedis操作存儲和獲取數據的方法。

JedisConnectionFactory如何獲取Redis 第4張
JedisConnectionFactory如何獲取Redis 第5張

另外,我們還有再介紹一種並不推薦的寫法,如下圖所示。這種方法每次都創建一個新的Redis連接並且沒有關閉連接,在大量併發操作時會帶來性能上的開銷,由於對連接數沒有限制,可能會耗盡Redis的連接,導致Redis連接報錯。

JedisConnectionFactory如何獲取Redis 第6張

配置完成後我們來測試一下Jedis是否能正常使用,創建一個RedisController類,在該類中注入JedisServer,使用JedisServer提供的存儲和讀取方法,然後啟動服務。

JedisConnectionFactory如何獲取Redis 第7張

服務啟動後我們在postman中進行測試,首先調用setRedis請求將數據存入Redis中,然後再調用getRedis請求獲取數據,如下圖所示。

JedisConnectionFactory如何獲取Redis 第8張
JedisConnectionFactory如何獲取Redis 第9張

JedisConnectionFactory在Spring Data Redis 2.0後就不再推薦上述這種配置方式了,當我們的spring-boot-starter-parent版本設置為2.x時,我們可以看到代碼中的設置已經被廢棄了。

JedisConnectionFactory如何獲取Redis 第10張

Spring Data Redis 2.0推薦使用Standalone、Sentinel、RedisCluster這三種模式的環境配置類,以便於更加靈活的適配更多的業務場景,我們一般自己測試Redis通常使用的都是單機版的,那麼以單機版為例,JedisConnectionFactory的配置應寫為如下的方式。

JedisConnectionFactory如何獲取Redis 第11張

特別提示

本文只是介紹了一種Redis客户端的使用方式,還是推薦大家使用spring-boot集成Redis做開發,因為spring-boot開箱即用的特性可以大大減少開發工作量。

Tags:Redis 獲取