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

工具/材料
IntelliJ IDEA
操作方法
- 01
首先我們需要編輯Spring的配置文件application.properties,添加Redis的相關配置,這些配置在代碼中需要注入,用來生成JedisConnectionFactory的Bean。
- 02
接下來我們寫一個配置類,該配置類上需要添加@Configuration注解,我們在這個類中通過@Value注解注入application.properties配置文件中的部分需要的屬性,其中{}用于接收屬性值,在屬性名冒號后面的值是默認值,若讀取不到該屬性則使用默認值。我們在該類中創建JedisConnectionFactory的Bean,在這個Bean中設置讀取到的屬性值。
- 03
接下來我們創建一個RedisServer的類,主要用于獲取Redis以及實現部分Redis操作的方法。在該類中我們可以使用@Autowired注解注入JedisConnectionFactory的Bean。下圖中獲取Redis客戶端Jedis的方法是我們推薦的方法,使用該方法我們既獲取到了Jedis實例又使用的連接池,將Jedis實例交由連接池管理,不用太擔心并發操作導致的Redis不可用的情況。最后再附上Jedis操作存儲和獲取數據的方法。
- 04
另外,我們還有再介紹一種并不推薦的寫法,如下圖所示。這種方法每次都創建一個新的Redis連接并且沒有關閉連接,在大量并發操作時會帶來性能上的開銷,由于對連接數沒有限制,可能會耗盡Redis的連接,導致Redis連接報錯。
- 05
配置完成后我們來測試一下Jedis是否能正常使用,創建一個RedisController類,在該類中注入JedisServer,使用JedisServer提供的存儲和讀取方法,然后啟動服務。
- 06
服務啟動后我們在postman中進行測試,首先調用setRedis請求將數據存入Redis中,然后再調用getRedis請求獲取數據,如下圖所示。
- 07
JedisConnectionFactory在Spring Data Redis 2.0后就不再推薦上述這種配置方式了,當我們的spring-boot-starter-parent版本設置為2.x時,我們可以看到代碼中的設置已經被廢棄了。
- 08
Spring Data Redis 2.0推薦使用Standalone、Sentinel、RedisCluster這三種模式的環境配置類,以便于更加靈活的適配更多的業務場景,我們一般自己測試Redis通常使用的都是單機版的,那么以單機版為例,JedisConnectionFactory的配置應寫為如下的方式。
特別提示
本文只是介紹了一種Redis客戶端的使用方式,還是推薦大家使用spring-boot集成Redis做開發,因為spring-boot開箱即用的特性可以大大減少開發工作量。
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫學等領域),建議您咨詢相關領域專業人士。