mybatis之redis整合快取配置使用

2022-06-16 05:36:10 字數 2377 閱讀 6774

前面兩篇文章介紹了一級快取和二級快取。mybatis 預設提供的快取實現是基於 map 實現的記憶體快取,己經可以滿足基本的應用。但是當需要快取大量的資料時,不能僅僅通過提高記憶體來使用 mybatis二級快取,還可以選擇些類 ehcache 的快取框架或 redis 快取資料庫等工具來儲存 mybatis得二級快取資料。

一、首先來認識一下redis  

支援的型別:字串、雜湊、列表、集合和有序集合。

因為 redis 預設將所有資料都儲存到記憶體中,並且記憶體的讀寫速度遠遠高於硬碟,因此,比其他基於硬碟儲存的資料庫在效能上體現的優勢非常明顯。不過這樣也引發了乙個資料安全性的問題,程式異常或退出後資料會出現丟失的情形,現在新的版本已經提供了資料持久化(rdb + aof)的支援,即可以將記憶體中的資料非同步寫入到硬碟上,同時不會影響其它功能的執行。

redis 可以為每個鍵設定生存時間,到期自動刪除,也就是說可以作為快取系統(這也是企業主要的運用場景)進行使用。

相對於 memcached,簡單的說:redis 單執行緒模型,memcached 支援多執行緒,但 redis 支援的功能和資料型別更多,更簡單易用,並且 redis 的效能在絕大部分場合下都不會成為系統瓶頸,不過在多核伺服器上使用的情況下,理論上 memcached 比 redis 效能更高。所以,在新專案中,建議使用 redis 代替 memcached。

redis 還可以限定資料占用的最大記憶體空間,在資料達到空間限制後按一定規則自動淘汰不需要的鍵;也支援構建高效能的佇列(不過很多企業會選擇第三方的 mq,如:rabbitmq)。

二、redis配置

1. 首先匯入依賴

<

dependency

>

<

groupid

>org.mybatis.caches

groupid

>

<

artifactid

>mybatis-redis

artifactid

>

<

version

>1.0.0-beta2

version

>

dependency

>

2. 在配置redis之前,需要對redis進行乙個安裝驅動,大致驅動流程如下。

(2)對檔案包進行解壓,並開啟cmd視窗執行對應指令。(輸入cmd後enter鍵,進入dos視窗)

(3)驅動redis

redis-server

redis-server --port 6379

執行指令出現頁面:

(4)這時重開乙個新的cmd視窗執行其他指令,當前頁面不要關閉。

切換到redis目錄下:

redis-cli.exe -h 127.0.0.1 -p 6379
設定鍵值對:

set mykey abc
取出鍵值對:

get mykey
測試與 redis 的連線是否正常,正常返回 pong

停止驅動

$ redis-cli shutdown
3. 在檔案包config下新建redis.properties,對redis進行配置

host = localhost

port = 6379

connectiontimeout = 5000

sotimeout = 5000

password =

database = 0

clientname =

<

namespace

>

<

cache

type

="org.mybatis.caches.redis.rediscache"

/>

>

5. 再次執行testcache2測試,結果正常顯示。

至此,結束。

redis驅動安裝部分內容取自文章

Springboot整合Mybatis之二級快取

開啟mybatis的二級快取 mybatis.configuration.cache enabled true 開啟sql列印 說明 eviction 策略 flushinterval 重新整理間隔,以毫秒為單位,100000表示每100秒重新整理一次快取。不設定的話,則每次呼叫語句時重新整理。re...

Mybatis系列十五 整合Redis

在springboot專案中用redis做mybatis的二級快取。1 新增redis依賴 org.springframework.boot spring boot starter data redis spring redis database 0 host 10.18.28.225 port 6...

啥是Redis之整合springBoot

簡單解釋下 host 埠號password 密碼 預設為空,如有需要可以去redis.windows.conf 檔案中配置 requirepass 123456 這裡表示設定redis密碼為123456 database redis可用資料庫數,由於各業務場景需要分開儲存,預設從第0個開始,共16個...