使用Redis在MyBatis中缓存

在本文中,优锐课将讨论如何通过RedisRedisson Java客户端在MyBatis中使用缓存。

MyBatisJava编程语言的开源,轻量级持久性框架。使用MyBatis,用户可以将Java方法映射到存储过程或SQL语句。MyBatis中的事务查询缓存功能使用户可以缓存其查询,从而减少查找时间并提高性能。

Java开发人员通常将MyBatisRedis(一种开源的内存中数据结构存储)结合使用,Redis通常用于构建NoSQL数据库。但是开发人员如何使用RedisMyBatis中实现缓存?

MyBatis项目包括Redis Cache扩展,但是你也可以使用第三方Redis Java客户端(例如Redisson),它提供了许多有用的优势。在本文中,优锐课将讨论如何通过RedisRedisson Java客户端在MyBatis中使用缓存。

 

MyBatisRedisRedisson

Redisson是第三方Redis Java客户端,其中包括许多熟悉的Java对象和集合的实现。Redisson支持Java缓存,数据处理,任务调度和执行以及微服务。

redisson-mybatis扩展实现了RedissonMyBatis缓存。在撰写本文时,RedissonMyBatis 3.0.0及更高版本兼容。RedissonMyBatis提供了两个重要的缓存功能,Redisson PRO版本提供了这些功能:

·         本地缓存,执行读取操作的速度最高可提高45

·         集群模式下的数据分区,可帮助开发人员扩展可用内存和读/写操作

 

MyBatis缓存和RedisRedisson一起使用

RedisMyBatis Cache的集成只是Redisson的两个简单步骤。

1. 添加redisson-mybatis依赖关系

首先,使用MavenGradleredisson-mybatis依赖项添加到你的项目中。Maven依赖项是:

1      <dependency>
2          <groupId>org.redisson</groupId>
3          <artifactId>redisson-mybatis</artifactId>
4          <version>3.12.0</version>
5      </dependency>

 

Gradle依赖项是:

1      compile 'org.redisson:redisson-mybatis:3.12.0'

 

2. 指定MyBatis缓存设置

其次,你需要为项目指定MyBatis缓存设置。可用参数为:

·         timeToLive:此参数指定删除对象之前在缓存中存储对象的最长时间。

·         maxIdleTime: 此参数指定对象在被自动删除之前可以保持空闲/未使用的最长时间。

·         maxSize: 此参数指定缓存中存储的条目的最大大小。

·         redissonConfig: 此参数以YAML格式提供指向Redisson配置文件的链接。

如果你将Redisson的本地缓存功能用于MyBatis,则还可以指定以下参数:

·         localCacheEvictionPolicy: 此参数指定本地缓存逐出策略。 可用策略为LFULRUSOFTWEAKNONE

·         localCacheSize: 此参数指定本地缓存的最大大小

·         localCacheTimeToLive: 此参数指定本地缓存的生存时间

·         localCacheMaxIdleTime: 此参数指定本地缓存的最大空闲时间

·         localCacheSyncStrategy: 此参数指定本地缓存的同步数据的策略。可用策略为INVALIDATEUPDATENONE

请注意,与MyBatis捆绑在一起的当前版本的Redis缓存仅支持整个缓存的timeToLive参数。它不支持每个条目的timeToLivemaxIdleTime参数。这是Redisson优于MyBatis中默认Redis Cache实现的优势之一。

以下是RedissonMyBatis缓存设置的示例规范:

1 <cache type="org.redisson.hibernate.RedissonCache">
2  <property name="timeToLive" value="200000"></property>
3  <property name="maxIdleTime" value="100000"></property>
4  <property name="maxSize" value="100000"></property>
5  <property name="redissonConfig" value="redisson.yaml"></property>
6 </cache>

 

以下规范是Redisson中具有本地缓存的MyBatis缓存设置的示例:

 1 <cache type="org.redisson.hibernate.RedissonLocalCachedCache">
 2   <property name="timeToLive" value="200000"></property>
 3   <property name="maxIdleTime" value="100000"></property>
 4   <property name="maxSize" value="100000"></property>
 5   <property name="localCacheEvictionPolicy" value="LRU"></property>
 6   <property name="localCacheSize" value="1000"></property>
 7   <property name="localCacheTimeToLive" value="2000000"></property>
 8   <property name="localCacheMaxIdleTime" value="1000000"></property>
 9   <property name="localCacheSyncStrategy" value="INVALIDATE"></property>
10
11   <property name="redissonConfig" value="redisson.yaml"></property>
12 </cache>

 

谢谢阅读!

更深入的探讨欢迎留言或私信,还可以和你分享更多Java学习资料!

 


猜你喜欢

转载自blog.51cto.com/14631216/2461965
今日推荐