前面兩篇文章介紹了一級快取和二級快取。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. 首先匯入依賴
<2. 在配置redis之前,需要對redis進行乙個安裝驅動,大致驅動流程如下。dependency
>
<
groupid
>org.mybatis.caches
groupid
>
<
artifactid
>mybatis-redis
artifactid
>
<
version
>1.0.0-beta2
version
>
dependency
>
(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 shutdown3. 在檔案包config下新建redis.properties,對redis進行配置
host = localhostport = 6379
connectiontimeout = 5000
sotimeout = 5000
password =
database = 0
clientname =
<5. 再次執行testcache2測試,結果正常顯示。namespace
>
<
cache
type
="org.mybatis.caches.redis.rediscache"
/>
>
至此,結束。
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個...