谷粒商城 缓存

  1. 导入依赖
  2. 指定缓存类型
  3. @EnableCache
  4. 使用注解
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
  cache:
    type: redis
注解

@Caching 组合以上多个操作
@CacheEvict 删除缓存
@Cacheable 保存到缓存
@CachePut 不影响方法执行更新缓存
@CacheConfig 在类级别共享缓存的相同配置

配置

json需要配一下,不然序列化复杂数据类型会抛异常

@Configuration
@EnableCaching  // 默认配置缓存null(缓存穿透)
public class CacheConfig {
    @Resource  
    RedisCacheConfiguration config;
    @Bean
    public RedisCacheConfiguration cacheConfiguration() {
        return RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofMillis(3000)) // 过期时间
                .disableKeyPrefix() // key 不添加前缀
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); // value 使用JSON序列化方式
    }
}

@Cacheable 保存到缓存
@Override
@Cacheable(cacheNames = "catalogCache", key = "'catalog'")
public Map<String, List<Catalog2VO>> getCatalogJson() {
    RLock lock = client.getLock("catalogLock");
    lock.lock();
    Map<String, List<Catalog2VO>> data = null;
    try {
        data = getCatalogJsonByDB();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        lock.unlock();
    }
    return data;
}
@CacheEvict 删除缓存
    @Override
    @CacheEvict(cacheNames = "catalogCache", key = "'catalog'")
    public void updateCatelog(CategoryEntity entity) {
        this.updateById(entity);
    }

  • 删除一个缓存分区下的所有键
   @CacheEvict(cacheNames = "catalogCache",allEntries = true)
@Caching 组合以上多个操作
 @Caching(cacheable = {
            @Cacheable(cacheNames = "catalogCache", key = "'catalog'"),
            @Cacheable(cacheNames = "catalogCache", key = "'catalog1'")
    })
python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实现mysql数据库(源码+文档说明)python基于django框架仓库管理系统设计与实
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值