Fork me on GitHub

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。

posted @ 2020-12-29 15:36  叶语婷  阅读(1478)  评论(0编辑  收藏  举报