学习Spring Boot:(二十五)使用 Redis 实现数据缓存
2023-09-14 09:06:17 时间
前言
由于 Ehcache 存在于单个 java 程序的进程中,无法满足多个程序分布式的情况,需要将多个服务器的缓存集中起来进行管理,需要一个缓存的寄存器,这里使用的是 Redis。
正文
当应用程序要去缓存中读取数据,但是缓存中没有找到该数据,则重新去数据库中获取数据,然后将数据存入缓存中。
还有当我们需要更新或者删除缓存中的数据时候,需要让缓存失效。
配置
在系统配置文件中加入 redis 的连接参数:
spring:
redis:
host: 192.168.19.200 # 120.79.208.199 # host ,默认 localhost
port: 6379 # 端口号,默认6379
pool:
# 设置都是默认值,可以按需求设计
max-active: 8 # 可用连接实例的最大数目,默认值为8;如果赋值为-1,则表示不限制;
max-idle: 8 # 控制一个pool最多有多少个状态为idle(空闲的)的redis实例,默认值也是8。
max-wait: -1 # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。
min-idle: 0 # 控制一个pool最少有多少个状态为idle(空闲的)的redis实例,默认值为0。
timeout: 0 # 连接超时时间 单位 ms,默认为0
password: master # 密码,根据自己的 redis 设计,默认为空
然后在系统入口启动类上面加入打开缓存的注解 @EnableCaching
。
如果没启用其他缓存,这样就自动打开 redis 缓存。
还可以自定义注册 RedisCacheManager,设置相关参数:
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate);
// 设置缓存最大时间 24 h
redisCacheManager.setDefaultExpiration(24 * 60 * 60);
return redisCacheManager;
}
使用
@Service
@CacheConfig(cacheNames = "em")
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeDao dao;
@Override
@Cacheable(key = "#p0")
public Employee findOne(Long id) {
return dao.findOne(id);
}
/**
* 更新缓存中的数据,
* 由于 redis 是存在外部,不是 ehcache 那样存在于项目进程中,需要我们主动去更新 缓存
* @param employee
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
@CachePut(key = "#p0.id")
public Employee update(Employee employee) {
return dao.save(employee);
}
/**
* 同样主动去删除 cache
* @param id
*/
@Override
@Transactional(rollbackFor = Exception.class)
@CacheEvict(key = "#p0")
public void delete(Long id) {
dao.delete(id);
}
}
注解的使用参考前面的[学习Spring Boot:(二十一)使用 EhCache 实现数据缓存
相关文章
- 玩转 Spring Boot 集成篇(Redis)(四)
- spring boot jedis_spring整合redis详解
- spring boot redis 缓存_redis本地缓存
- Redis分布式锁的实现方式(redis面试题)
- Spring Boot(十三):spring boot小技巧详解编程语言
- java spring boot 部署redis详解编程语言
- Spring框架下整合Redis的实现(spring整合redis)
- Redis主从复制和集群搭建指南(redis主从和集群)
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- Redis缓存:了解生命周期的关键(redis缓存生命周期)
- 如何在Redis中设置密码:简单明了的配置文件使用指南。(redis密码配置文件)
- 打开Redis终端拥抱自由,尽情探索(打开redis终端)
- TP框架与Redis结合为WEB应用提供极致性能(tp s redis)
- 使用SSM框架结合Redis让开发更加简单(ssm结合redis案例)
- 春暖花开,用Redis点亮梦想(spring连redis)
- 春满活力Redis存储专业解决方案(spring.redis)
- 切换redis的简单方法快速掌握切换技能(如何切换redis)
- 大公司用Redis实现秒杀场景的新模式(大公司redis秒杀场景)
- 红色警戒使用Redis高危命令的风险(redis 高危命令)
- 节点红色威胁Redis集群故障降低部分节点可用性(redis集群挂了一组)
- Redis实现轻松获取所有记录数(redis获取所有记录数)
- 利用Redis设置过期监听,提高系统性能(redis设置过期监听)