在本文中,优锐课将讨论如何通过Redis的Redisson Java客户端在MyBatis中使用缓存。
MyBatis是Java编程语言的开源,轻量级持久性框架。使用MyBatis,用户可以将Java方法映射到存储过程或SQL语句。MyBatis中的事务查询缓存功能使用户可以缓存其查询,从而减少查找时间并提高性能。
Java开发人员通常将MyBatis与Redis(一种开源的内存中数据结构存储)结合使用,Redis通常用于构建NoSQL数据库。但是开发人员如何使用Redis在MyBatis中实现缓存?
MyBatis项目包括Redis Cache扩展,但是你也可以使用第三方Redis Java客户端(例如Redisson),它提供了许多有用的优势。在本文中,优锐课将讨论如何通过Redis的Redisson Java客户端在MyBatis中使用缓存。
MyBatis和Redis与Redisson
Redisson是第三方Redis Java客户端,其中包括许多熟悉的Java对象和集合的实现。Redisson支持Java缓存,数据处理,任务调度和执行以及微服务。
redisson-mybatis扩展实现了Redisson的MyBatis缓存。在撰写本文时,Redisson与MyBatis 3.0.0及更高版本兼容。Redisson为MyBatis提供了两个重要的缓存功能,Redisson PRO版本提供了这些功能:
· 本地缓存,执行读取操作的速度最高可提高45倍
· 集群模式下的数据分区,可帮助开发人员扩展可用内存和读/写操作
将MyBatis缓存和Redis与Redisson一起使用
Redis与MyBatis Cache的集成只是Redisson的两个简单步骤。
1. 添加redisson-mybatis依赖关系
首先,使用Maven或Gradle将redisson-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: 此参数指定本地缓存逐出策略。 可用策略为LFU,LRU,SOFT,WEAK和NONE
· localCacheSize: 此参数指定本地缓存的最大大小
· localCacheTimeToLive: 此参数指定本地缓存的生存时间
· localCacheMaxIdleTime: 此参数指定本地缓存的最大空闲时间
· localCacheSyncStrategy: 此参数指定本地缓存的同步数据的策略。可用策略为INVALIDATE,UPDATE和NONE
请注意,与MyBatis捆绑在一起的当前版本的Redis缓存仅支持整个缓存的timeToLive参数。它不支持每个条目的timeToLive和maxIdleTime参数。这是Redisson优于MyBatis中默认Redis Cache实现的优势之一。
以下是Redisson中MyBatis缓存设置的示例规范:
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学习资料!