首页 > 其他分享 >这是一个空白文档

这是一个空白文档

时间:2023-08-16 21:22:04浏览次数:34  
标签:p0 缓存 这是 cacheNames 空白 Cacheable 文档 key new

添加依赖:spring-boot-starter-data-redis和spring-boot-starter-cache

在具体Redis应用中有2种方式:编程和注解

注解缓存应用开发
@Cacheable如果缓存中不存在目标值,则将调用目标方法并将返回的值存入缓存;如果存在,则直接返回缓存中的值,不会执行方法体。即使方法体内进行了数据库的更新操作,也不会执行。坑就是在condition中使用固定写法result
@Cacheable(key="'abcde'",cacheNames = "users") 需要配置cacheNames否则报错。对应生成的key为【cacheNames::key值】。Key值如果使用字符串固定值,则使用单引号括起来,如果使用方法的参数变量#p0用于指代第一个参数,第二个参数为#p1,依次类推。允许对多个方法参数执行拼接生成key值,例如@Cacheable(key="#p1+#p0");如果是复杂类型可以访问参数的属性值@Cacheable(key="#p0.username+#p0.password"),并且允许调用请求参数的方法@Cacheable(key="#p0.getMyId()")
还可以在业务类上添加注解@CacheConfig(cacheNames = "users")进行统一配置
条件应用注解缓存@Cacheable(key="#p0.getMyId()",unless = "#result!=null")

@CachePut 如果缓存中先前存在目标值,则更新缓存中的值为该方法的返回值;如果不存在,则将方法的返回值存入缓存。永远不会获取缓存数据
@CacheEvict 如果缓存中存在存在目标值,则将其从缓存中删除
使用注解配置,则需要在启动类或者JavaConfig配置类上加入@EnableCaching注解

RedisConfig配置类
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());生成的key值第一部分为类名称
sb.append(method.getName()); 生成的key值第二部分为方法名称
for (Object obj : params) { sb.append(obj.toString()); }生成的可以值第三部分为方法参数
return sb.toString();
}
};
}

@Bean
public CacheManager cacheManager(RedisConnectionFactory lettuceConnectionFactory) {
RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig();
// 设置缓存管理器管理的缓存的默认过期时间 defaultCacheConfig = defaultCacheConfig.entryTtl(Duration.ofSeconds(defaultExpireTime))
// 设置 key为string序列化 .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
// 设置value为json序列化 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()))
// 不缓存空值 .disableCachingNullValues();

    Set<String> cacheNames = new HashSet<>();
    cacheNames.add(userCacheName);

    // 对每个缓存空间应用不同的配置        Map<String, RedisCacheConfiguration> configMap = new HashMap<>();
    configMap.put(userCacheName, defaultCacheConfig.entryTtl(Duration.ofSeconds(userCacheExpireTime)));  设置默认的生存周期
    RedisCacheManager cacheManager = RedisCacheManager.builder(lettuceConnectionFactory)
            .cacheDefaults(defaultCacheConfig)
            .initialCacheNames(cacheNames)
            .withInitialCacheConfigurations(configMap)
            .build();
    return cacheManager;
}

标签:p0,缓存,这是,cacheNames,空白,Cacheable,文档,key,new
From: https://www.cnblogs.com/li-len/p/17636228.html

相关文章

  • 关于部分地区EDGE浏览器首页或者“新建标签页”无法打开、一直转圈或空白页的解决方案
    假期回家期间遇到一件事情,家里使用的是ikuai软路由,接入了山东移动+山东广电双线路,最近几天EDGE浏览器启动时一直不太顺畅,具体表现为浏览器启动时一直转圈,且首页变成空白页,点击“新建标签页”也会出现此现象。此外,微软的MSN(www.msn.cn)也无法正常访问。我突然冒出一个想法,会不会是......
  • flask swagger ui文档生成
    最近一直在写api文档,不知道兄弟们有没有和我一样的感受,写文档比写代码还难受,写代码逻辑实现提交就完事了,写api文档那才叫难受,有些不合理的地方给反复来回改好几遍,不止代码要改,文档要改,注释要改,关键是文档还要让别人能看得懂为了解决这个痛点我想起了swaggerui文档,因为我......
  • 大学生心理健康信息采集系统的设计与实现-计算机毕业设计源码+LW文档
    摘 要 随着计算机信息技术的发展,各种管理系统逐渐用在社会生产生活中,通过系统化管理提高办事流程,节约时间。越来越多的人习惯并依赖于通过信息技术和智能化的形式来处理日常各类事物。为了满足健康求助者的需要,以及适应现代化健康信管理的需求,决定开发基于微信小程序的大学生......
  • 这是一个空白文档
    添加依赖:spring-boot-starter-data-redis和spring-boot-starter-cache在具体Redis应用中有2种方式:编程和注解注解缓存应用开发@Cacheable如果缓存中不存在目标值,则将调用目标方法并将返回的值存入缓存;如果存在,则直接返回缓存中的值,不会执行方法体。即使方法体内进行了数据库的......
  • 消防安全管理全套资料免费下载,包含视频、PPT、文档
    夏季是火灾的高发季节,高温天气大幅增加了火灾的发生可能性。安全无小事,消防更关乎生命。为此,我们特邀注册安全工程师王工为大家整理了一份全面、实用的消防安全管理知识资料。希望通过这份资料,能帮助大家在工作和生活中,提升消防安全知识的掌握和理解。资料共11大模块,272份精华干......
  • 基于微信小程序的微海商城设计与实现-计算机毕业设计源码+LW文档
    摘 要随着互联网技术的发展,传统的商品销售迎来了机遇,我国是个人口大国,商品的需求量大,如何推广商品的销售是企业非常关注的事情。随着电子商务多元化的发展,各种类型的商品逐渐转移到线上销售。在互联网的帮助下,带动企业打开销路,促进商品销售的可持续发展。同时,通过基于微信小程......
  • 基于微信小程序的房屋租赁小程序设计与实现-计算机毕业设计源码+LW文档
    摘要随着计算机技术的不断发展,有效地促进了社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的房屋租赁管理满足不了现代人的生活追求、服务质量和服务速度。使用管理系统进行管理,成本大大减小,同时可借助互联网强大的流量入口,使得推广的难度也大大降低。因此设计一个管理......
  • 基于微信小程序的居民疫情服务系统-计算机毕业设计源码+LW文档
    摘 要新冠病毒传播迅速,已经严重影响了人类生命安全,防控手段成为大众关注的重点。另外,随着目前信息化手段的进步,使用技术手段可以有效的对新冠疫情进行防控管理。在社区,人员多,出入流动性大,如果单靠人工进行管理,很难进行有效的统计。为此提出开发基于微信小程序的居民疫情服务系统......
  • Mybatis配置文件的空白模板和联系demo所用到的依赖
    核心配置文件模板<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><envir......
  • echarts使用个性化百度地图(bmap)加载出现空白问题
     原因分析主要因为百度地图v2.0添加了个性化样式设置(给option.bmap中添加了styleJson配置)造成的,如果需要解决就要用v3.0,设置个性化的方式也不一样,引入的百度地图版本也要改成v3.0解决方式获取styleId过程:如果要是用styleid就必须要和引入的key是同一个账号才可以进入百度地图......