JedisConnectionFactory如何獲取Redis
Spring對Redis的支援是通過Spring Data Redis實現的,JedisConnectionFactory為我們提供了Redis的一種Java客戶端Jedis。本文主要為大家介紹使用工廠類獲取Jedis的兩種方式,以及使用過程中存在的問題,希望能為大家提供一些思路。
工具/材料
IntelliJ IDEA
操作方法
首先我們需要編輯Spring的配置檔案erties,新增Redis的相關配置,這些配置在程式碼中需要注入,用來生成JedisConnectionFactory的Bean。
接下來我們寫一個配置類,該配置類上需要新增@Configuration註解,我們在這個類中通過@Value註解注入erties配置檔案中的部分需要的屬性,其中{}用於接收屬性值,在屬性名冒號後面的值是預設值,若讀取不到該屬性則使用預設值。我們在該類中建立JedisConnectionFactory的Bean,在這個Bean中設定讀取到的屬性值。
接下來我們建立一個RedisServer的類,主要用於獲取Redis以及實現部分Redis操作的方法。在該類中我們可以使用@Autowired註解注入JedisConnectionFactory的Bean。下圖中獲取Redis客戶端Jedis的方法是我們推薦的方法,使用該方法我們既獲取到了Jedis例項又使用的連線池,將Jedis例項交由連線池管理,不用太擔心併發操作導致的Redis不可用的情況。最後再附上Jedis操作儲存和獲取資料的方法。
另外,我們還有再介紹一種並不推薦的寫法,如下圖所示。這種方法每次都建立一個新的Redis連線並且沒有關閉連線,在大量併發操作時會帶來效能上的開銷,由於對連線數沒有限制,可能會耗盡Redis的連線,導致Redis連線報錯。
配置完成後我們來測試一下Jedis是否能正常使用,建立一個RedisController類,在該類中注入JedisServer,使用JedisServer提供的儲存和讀取方法,然後啟動服務。
服務啟動後我們在postman中進行測試,首先呼叫setRedis請求將資料存入Redis中,然後再呼叫getRedis請求獲取資料,如下圖所示。
JedisConnectionFactory在Spring Data Redis 2.0後就不再推薦上述這種配置方式了,當我們的spring-boot-starter-parent版本設定為2.x時,我們可以看到程式碼中的設定已經被廢棄了。
Spring Data Redis 2.0推薦使用Standalone、Sentinel、RedisCluster這三種模式的環境配置類,以便於更加靈活的適配更多的業務場景,我們一般自己測試Redis通常使用的都是單機版的,那麼以單機版為例,JedisConnectionFactory的配置應寫為如下的方式。
特別提示
本文只是介紹了一種Redis客戶端的使用方式,還是推薦大家使用spring-boot整合Redis做開發,因為spring-boot開箱即用的特性可以大大減少開發工作量。
-
excel怎麼將表格轉換成圖片
excel中的表格怎麼樣轉換成圖片,讓小編教給你指南。操作方法(01)首先開啟一個工作樣表作為例子,將圖中表格轉換為圖片。(02)選擇需要轉換的表格。(03)切換到開始標籤。(04)點選複製下拉小箭頭。(05)選擇複製為圖片。(06)點選確定。(07)點選貼上命令。(08)完成表格轉換為圖片目的...
-
HTML,如何製作導航欄?
在用html做一個網頁時,首先需要處理的是導航欄了。怎樣製作一個導航欄?以前的做法基本都是用table來做,現在我們用無序列表ul來做,下面一起來看下。操作方法(01)首先我們寫html程式碼,就是用ul,li無序列表來放置我們的選單項,程式碼如圖。(02)執行目前的程式碼,可以看到是一個比...
-
FLYME7系統怎麼樣?
魅族公司作為國產手機的領航者,每一款新產品都會受到使用者們的期待,那麼即將推出的最新Flyme7系統怎麼樣呢?一起來了解一下。操作方法(01)Flyme是國內作業系統的標杆,同MIUI能夠並驅前行,之前MIUI9已經發布,讓很多人看到了驚豔,Flyme7卻還在醞釀,很多人都在期待。(02)最近魅...
-
PHP如何獲取日期的年份?
在PHP開發中,我們很多時候會用到日期,當我們只用到日期的年份時,怎麼獲取一個日期的年份?下面一起來看下。操作方法(01)用到日期函式,我們當然少不了用date方法了。看下我們的程式碼,如圖,很簡單,就是用date方法獲取到當前日期,然後用‘y'標誌格式化日期輸出,只輸出年份...
相關文章
- 電腦提示operating system not found怎麼辦
- Visual Studio Code中如何搭建並執行NodeJS環境
- Notepad++中TextFX Characters外掛如何安裝
- 如何在Windows中安裝VMware Workstation Pro 12
- 恢復win10誤刪Microsoft Print to PDF印表機
- Android sdk content loader 0%的解決方案
- 電腦出現no bootable devices found怎麼解決?
- SpringBoot整合SpringSeesion實現Redis快取
- Visual Studio中如何安裝使用Newtonsoft Json
- GetThreadContext failed的解決方法