下面是 Redis 与 SSM 整合的步骤及示例:
一、设置 Redis
-
安装 Redis,启动 Redis 服务
-
配置 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 中,配置如下
- 添加 MyBatis Redis 依赖
xml
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-redis</artifactId>
<version>2.0.0</version>
</dependency>
- 在 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 中
- 在 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
来指定缓存使用情况
- 在 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技术站