第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

MyBatis 使用 Redis 緩存

1. 前言

MyBatis 緩存一節(jié)中,我們介紹了 MyBatis 的多級緩存。MyBatis 的二級緩存可在多個會話中共享緩存,但是這也加大了內(nèi)存的使用空間,如果二級緩存空間占有量過多勢必會導(dǎo)致程序運(yùn)行空間的不足,因此我們需要將二級緩存轉(zhuǎn)移到專業(yè)的緩存服務(wù)器上。

Redis 是一個高性能的 kv 數(shù)據(jù)庫,被廣泛的使用在緩存服務(wù)上,MyBatis 項目開發(fā)者提供了 Redis 緩存的實現(xiàn)。本小節(jié)我們將一起來學(xué)習(xí)如何在 MyBatis 中集成 Redis 緩存。

2. 準(zhǔn)備

2.1 添加依賴

在項目的 pom.xml 文件中添加上 mybatis-redis 依賴:

<dependency>
  <groupId>org.mybatis.caches</groupId>
  <artifactId>mybatis-redis</artifactId>
  <version>1.0.0-beta2</version>
</dependency>

mybatis-redis 目前還只有 beta 版,相信不久后就可以到正式版了。

2.2 Redis服務(wù)器

請確保你擁有一臺可用的 Redis 服務(wù)器,并能夠正常運(yùn)行。如下:

127.0.0.1:6379> ping
PONG

2.3 Redis配置文件

在 src/main/resources 目錄下新增 redis.properties 配置文件,并向其中添加如下配置:

host=localhost
port=6379
connectionTimeout=5OOO
soTimeout=5OOO
password=123456
database=O
clientName=

注意,請根據(jù)自己的環(huán)境來修改配置,如密碼和主機(jī)。

3. 使用

3.1 配置

在對應(yīng)的 mapper 配置文件中,如 UserMapper.xml 文件添加上對應(yīng)的緩存配置。如下:

<cache type="org.mybatis.caches.redis.RedisCache" />

3.2 調(diào)用

配置好以后,我們就可以直接在程序中調(diào)用了。

SqlSession session1 = sqlSessionFactory.openSession();
UserMapper userMapper1 = session1.getMapper(UserMapper.class);
User user1 = userMapper1.selectUserById(1);
System.out.println(user1);
SqlSession session2 = sqlSessionFactory.openSession();
UserMapper userMapper2 = session2.getMapper(UserMapper.class);
User user2 = userMapper2.selectUserById(1);
System.out.println(user2);

注意,User 對象必須實現(xiàn)Serializable接口才可被緩存。 比如:

public class User implements Serializable {}

當(dāng)緩存成功,程序會有如下輸出,表示緩存擊中。

20:58:12.462 [main] DEBUG com.imooc.mybatis.mapper.UserMapper - Cache Hit Ratio [com.imooc.mybatis.mapper.UserMapper]: 1.0
User{id=1, username='peter', age=18, score=100}
20:58:12.499 [main] DEBUG com.imooc.mybatis.mapper.UserMapper - Cache Hit Ratio [com.imooc.mybatis.mapper.UserMapper]: 1.0
User{id=1, username='peter', age=18, score=100}

提示: 在第一次運(yùn)行時,會向 Redis 中存放數(shù)據(jù),不會使用到緩存,第二次運(yùn)行時則才會使用到緩存。

4. 小結(jié)

  • Redis 緩存十分常見,MyBatis 集成 Redis 緩存也異常方便,但是在實際生產(chǎn)環(huán)境下如此應(yīng)用的都不多,而是直接選擇其它方式來使用 Redis 緩存。