您的位置:首页 > 数据库 > Redis

使用redis缓存

2020-04-03 07:38 946 查看

使用redis缓存

  1. 首先加入redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.配置redis缓存地址

3.在全局入口开启缓存注解
4.编写chache配置类

@Configuration
public class MyRedisConfig {
@Bean
public RedisCacheManager employeeRedisCacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration cacheConfiguration =
RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofDays(1))   // 设置缓存过期时间为一天
.disableCachingNullValues()     // 禁用缓存空值,不缓存null校验
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new
GenericJackson2JsonRedisSerializer()));     // 设置CacheManager的值序列化方式为json序列化,会加入@Class属性
return RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(cacheConfiguration).build();     // 设置默认的cache组件
}
}

5.配置完可以在service中的业务逻辑使用注解进行缓存

public class EmployeeService {
@Autowired
EmployeeDao employeeDao;
/**
* 将方法的运行结果进行缓存
* @Cacheable(cacheNames = {"emp"},condition = "#id>0") 设置缓存的区域块,以及设置id是多少才缓存
* 查询结果后以key的方式存入缓存
* @param id
* @return
*/
@Cacheable(cacheNames = {"emp"},condition = "#id>0",key="#id")
public Employee getById(Integer id){
System.out.println("查询"+id+"号员工");
return employeeDao.getById(id);
}

/**
* 缓存会把缓存记录存放到cachenames下面,以key value 的方式存放
* key设置缓存的key
* 更新key的缓存 用户更新 新增
* @param employee
*/
@CachePut(cacheNames = {"emp"},key="#employee.id")
public void update(Employee employee){
employeeDao.update(employee);
}
/**
* @CacheEvict(cacheNames = {"emp"},key="#id") 指定缓存块是哪个 key指定删除那个缓存
* 删除数据并删除该id的缓存
* @param id
*/
@CacheEvict(cacheNames = {"emp"},key="#id")
public void delete(Integer id){
employeeDao.delete(id);
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
qq_44257753 发布了19 篇原创文章 · 获赞 0 · 访问量 218 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: