redis与ssm整合方法(mybatis二级缓存)

yizhihongxing

下面是 Redis 与 SSM 整合的步骤及示例:

一、设置 Redis

  1. 安装 Redis,启动 Redis 服务

  2. 配置 Redis

bash
# Redis 默认监听本机地址 127.0.0.1
# 如果 Redis 开启了认证,此处需要填入认证密码
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=******

配置文件中还可以设置 Redis 的其他属性,如数据库,连接池等

具体可以参考 Spring Boot Redis 配置说明

二、整合 MyBatis 二级缓存

MyBatis 支持将二级缓存存储在 Redis 中,配置如下

  1. 添加 MyBatis Redis 依赖

xml
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-redis</artifactId>
<version>2.0.0</version>
</dependency>

  1. 在 MyBatis 配置文件中添加 Redis 缓存配置

xml
<configuration>
<settings>
<!-- 开启 MyBatis 二级缓存 -->
<setting name="cacheEnabled" value="true"/>
<!-- 开启 查询缓存 -->
<setting name="localCacheScope" value="STATEMENT"/>
<!-- Redis 缓存配置 -->
<setting name="redisCache" value="true"/>
</settings>
</configuration>

<setting> 中添加 redisCache,即可开启将二级缓存存储在 Redis 中

  1. 在 Mapper.xml 中指定要缓存的结果集

```xml

   <select id="getUserById" parameterType="Integer" resultType="com.example.pojo.User" useCache="true">
       SELECT * FROM user WHERE id = #{id};
   </select>

```

<cache> 中开启二级缓存,同时在 <select> 中通过 useCache 来指定缓存使用情况

  1. 在 Spring Boot 中启用 MyBatis 缓存

java
@SpringBootApplication
// 扫描 MyBatis Mapper
@MapperScan("com.example.mapper")
// 开启 MyBatis 二级缓存
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

三、使用 MyBatis Redis 缓存

上述步骤完成后,就可以在代码中直接使用 MyBatis Redis 缓存了,具体使用方式与 MyBatis 的其他缓存方式相同,下面就以查询用户信息为例进行说明

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Cacheable(value = "userCache", key = "#id")
    public User getUserById(Integer id) {
        return userMapper.getUserById(id);
    }
}

上述代码中,通过 @Cacheable 开启缓存,并指定了缓存名称为 userCache,缓存的键为 id

另外,为了防止缓存穿透和雪崩等问题,可以使用缓存前缀和过期时间等策略,具体可以参考 Redis 官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:redis与ssm整合方法(mybatis二级缓存) - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL 定位连续的值区间

    SQL定位连续的值区间的攻略通常使用窗口函数和自连接完成,具体步骤如下: 窗口函数生成行编号,按照要查询的列进行排序 在查询语句中使用ROW_NUMBER() OVER (ORDER BY column_name)来生成行编号,按照要查询的列进行排序,这个行编号将作为后面自连接表中的关联条件之一。 将原表自连接 将原表自连接,连接条件为行编号相差一,同时还需…

    database 2023年3月28日
    00
  • PostgreSQL 查看数据库,索引,表,表空间大小的示例代码

    PostgreSQL 是一款十分流行的开源关系型数据库管理系统,非常适合用于数据分析、应用程序开发、Web 应用程序、GIS 应用等各种场景。在 PostgreSQL 中,我们可以通过各种命令和SQL语句来查询和管理我们的数据库、表、索引、表空间等对象。 以下是“PostgreSQL 查看数据库,索引,表,表空间大小”的示例代码攻略,以下示例均在Linux系…

    database 2023年5月19日
    00
  • 天谕9月3日更新内容一览

    天谕9月3日更新内容一览攻略 前言 天谕9月3日更新内容一览已经公布,本篇攻略将详细讲解更新内容,并提供相应的操作指南,方便玩家进行游戏。 更新内容 本次更新内容主要包括以下几点: 新增珍魂收集活动 新增图腾装备评分系统 新增“春节大阵容”限时活动 下面逐一解析: 珍魂收集活动 珍魂收集活动是一项全新的收集活动,活动期间玩家需要通过各种途径获得珍魂碎片并兑换…

    database 2023年5月21日
    00
  • VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】

    VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】 本教程将介绍如何在VirtualBox虚拟机上安装CentOS 7.7.1908系统,以及如何安装Python3.8和Scrapy框架来搭建开发环境。 步骤一:安装VirtualBox 首先下载并安装VirtualBox软件,可以从官方网站(http…

    database 2023年5月22日
    00
  • goto语法在PHP中的使用教程

    下面是关于“goto语法在PHP中的使用教程”的详细讲解和完整攻略。 1. 什么是goto语法? goto是一个PHP的关键字,它是一个跳转语句,可以将代码执行跳转到指定的位置。goto语法可以在某些情况下简化代码结构,但也可能会增加代码的可读性和维护性,因此应该谨慎使用。 2. goto语法的基本用法 goto语法由goto关键字和标识符(label)组成…

    database 2023年5月22日
    00
  • CouchDB和Redis的区别

    CouchDB和Redis都是流行的NoSQL数据库,它们各自具有不同的特点和用途。 CouchDB 什么是CouchDB? Apache CouchDB是一个使用JSON格式存储数据的开源数据库,具有分布式、无模式和离线支持的特点。Couch意为“Cluster Of Unreliable Commodity Hardware”(不可靠的通用硬件群集),可…

    database 2023年3月27日
    00
  • Redis高可用二( 哨兵sentinel)

    1、主从配置 2、配置哨兵 sentinel.conf # Example sentinel.conf bind 0.0.0.0 protected-mode no # 关闭安全模式 port 26380 # 哨兵端口 sentinel monitor mymaster 127.0.0.1 6380 # mymaster默认 127.0.0.1:主redis…

    Redis 2023年4月12日
    00
  • mysql常用sql与命令之从入门到删库跑路

    MySQL常用SQL与命令之从入门到删库跑路 MySQL是一种广泛应用的关系型数据库管理系统,具有开源、免费、性能高、稳定、安全等优点,被广泛用于各种类型的应用程序中。本攻略将从入门到删库跑路,详细讲解MySQL的常用SQL语句和命令,帮助读者快速掌握MySQL数据库的使用。 1. 安装MySQL 首先需要安装MySQL数据库,可以从MySQL官方网站[ht…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部