mybatis之redis集成缓存配置使用
前面两篇文章介绍了一级缓存和二级缓存。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。