前面兩篇文章介紹了一級緩存和二級緩存。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. 首先導入依賴
<!-- 引入redis緩存依賴--> <dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-redis</artifactId> <version>1.0.0-beta2</version> </dependency>
2. 在配置redis之前,需要對redis進行一個安裝驅動,大致驅動流程如下。
(1)先下載redis驅動,http://files.cnblogs.com/files/liqingwen/redis-windows-3.0.7z。
(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
PING
停止驅動
$ redis-cli SHUTDOWN
3. 在文件包config下新建redis.properties,對redis進行配置
host = localhost
port = 6379
connectionTimeout = 5000
soTimeout = 5000
password =
database = 0
clientName =
4. 在roleMapper.xml中進行設置
<mapper namespace="com.example.simple.mapper.RoleMapper"> <cache type="org.mybatis.caches.redis.RedisCache" /> </mapper>
5. 再次執行testCache2測試,結果正常顯示。
至此,結束。
redis驅動安裝部分內容取自文章https://www.cnblogs.com/liqingwen/p/6917426.html。