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

这是一个空白文档

时间:2023-08-21 21:38:04浏览次数:28  
标签: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/17647110.html

相关文章

  • 包机制,javaDoc生成文档
    包机制,javaDoc生成文档1.为了更好的组织类,JAVA提供包机制,用于区别类名的命名空间。包语句语法格式:packagepkg1[.pkg2[.pkg3...]]2.一般利用公司域名倒置为包名为了能使用某一包的成员,我们在java程序中导入该包。使用“import”完成此功能importpackage1.package2.(classnam......
  • C++文档入口汇总
    一、C++参考手册(中文)cppreferencehttps://zh.cppreference.com/二、菜鸟教程(中文)https://www.runoob.com/cplusplus/cpp-tutorial.html三、C++的常用库及其文档:标准模板库(STL)提供了许多数据结构和算法,如向量、链表、队列、堆栈、映射和排序算法等。其中文文档链接:https://......
  • 机房收费管理系统-计算机毕业设计源码+LW文档
    【摘要】作为计算机机房管理的必要组成部分,计算机机房管理系统有助于机房资源的合理分配、统一管理和设备利用率的提高,从而有力地保证了机房的管理质量。现代化、信息化和自动化是计算机机房的发展方向,它们旨在实现无人或少人值守的开放式管理,并减轻管理员的压力。通过自动计费和合......
  • 基于SpringBoot的在线文档管理系统的设计与实现
    研究目的及意义随着信息技术的发展,为了提高文档管理效率,而开发了本基于SpringBoot的在线文档管理系统,本在线文档管理系统的开发具有很大的现实意义和实用意义。首先,在操作流程上,管理员和用户都只需要访问网页,便可进行文档信息的管理。不需要像手工记录,快速便捷,提高了文档管理的准......
  • 房产中介管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着计算机技术的不断发展,有效地促进了社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的房产中介管理满足不了现代人的生活追求、服务质量和服务速度。使用管理系统进行管理,成本大大减小,同时可借助互联网强大的流量入口,使得推广的难度也大大降低。因此设计一个管理......
  • 校园闲置物品交易系统-计算机毕业设计源码+LW文档
    一、选题背景及意义信息技术的发展给世界各国带来了巨大的变化,特别是Internet的出现,使得人们之间的交流更加顺畅,无论身在何处,只需要通过网络的连接就可以实现沟通。计算机、手机等各种设备的普及,计算机信息技术逐渐走向多元化,无论是经济、军事、服务行业都可以通过管理系统来提高......
  • 基于Java的校园打字练习系统的设计与实现-计算机毕业设计源码+LW文档
    一、研究目的和意义研究目的:随着互联网的进一步发展,打字这项技能几乎成为所以大学生的必备技能。校园打字系统已经成为大学生练习打字的重要帮手,它可以将古代和现代诗歌、网红文章、中外著名名著全部存储在里面,便于使用者自行选择文本进行练习打字;随着电脑的普及,各行各业都会有使......
  • COMP4650 文档分析
    COMP4650COMP4650/6490DocumentAnalysis–Semester2/2023Assignment1Due17:00onWednesday16August2023AEST(UTC+10)LastupdatedJuly28,2023OverviewInthisassignment,yourtaskistoimplementabasicbooleanandrankedinformationretrieval(IR......
  • 测试文档1
    标题测试列表列表2有序列表有序列表2图片测试,远程图片4​图片测试,本地图片​​图片2​测试814这是一篇测试文章,等会会删除‍......
  • 两步实现springBoot导出带动态表格的word docx文档
    1.第一步导入poi依赖<!--ApachePOI--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>......