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

这是一个空白文档

时间:2023-08-18 19:45:10浏览次数:37  
标签: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/17641460.html

相关文章

  • 某电商平台电子产品用户购买行为研究-计算机毕业设计源码+LW文档
    摘要随着计算机和互联网的普及,搜索引擎成了人们常用的工具。通过搜索引擎来查询电商网站销售信息,搜索引擎首先对关键词进行分析,然后返回查询的结果。但是随着网络信息量的急速增长,产生了大量的垃圾信息和网络广告,使得查询结果越来越困难。针对这一问题,本系统通过对网络爬虫的分析......
  • IT行业招聘数据分析与岗位推荐系统-计算机毕业设计源码+LW文档
    内容摘要随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那么容易,对于应聘者也是如此。本系统通过对网络爬虫......
  • 基于Python的招聘网站爬虫及可视化的实现-计算机毕业设计源码+LW文档
    开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:PyCharm浏览器:谷歌浏览器DROPTABLEIFEXISTSa6woc_zhaopinxinxi;/*!40101SET@saved_cs_client=@@character_set_client/;/!40101SETcharacter_set_cli......
  • 信也科技Wiki文档中心,让知识管理水平更高效
    随着企业规模的扩大和业务的不断拓展,企业内部的文档数量越来越多,文档来源也越来越多样化,文档格式和命名方式也各不相同。这种情况下,企业内部的知识沉淀问题越发凸显,员工之间的传承能力也越来越差。为了解决这个问题,企业需要建立统一的文档管理规范和分类体系,建立知识库,建立文档审核......
  • 金融行业招聘数据分析系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那么容易,对于应聘者也是如此。本系统通过对网络爬虫的......
  • 信息系统设计文档
    《需求规格说明书》、《概要设计》、《详细设计》有什么区别?《需求规格说明书》:确立需求时候书写的一个需求文档,主要涉及功能描述、入参、出参、规则说明。《概要设计》:主要包含功能描述、功能设计、功能时序图、数据传输类型。《详细设计》:主要包含静态模型、业务时序图、各个功能......
  • JDBC Vertica Source Connector 使用文档
    支持以下引擎SparkFlinkSeaTunnelZeta关键特性批处理精确一次性处理列投影并行处理支持用户自定义拆分支持查询SQL并实现投影效果描述通过JDBC读取外部数据源数据。支持的数据源信息DatasourceSupportedversionsDriverUrlMavenVerticaDiffer......
  • Husky中文文档
    Husky 能让你更简单地使用Githooks。它能阻止不合格的gitcommit,gitpush操作。webpack、babel、create-react-app、antd都使用了husky。网上基本还没有husky的中文文档。鉴于此,Breword翻译团队对其最新版本的文档进行了翻译,以方便大家使用该项目。该项目最新中文文档在这......
  • 基于微信小程序的网上交易平台的设计与实现-计算机毕业设计源码+LW文档
    摘 要随着互联网技术的发展,传统的商品销售迎来了机遇,我国是个人口大国,商品的需求量大,如何推广商品的销售是企业非常关注的事情。随着电子商务多元化的发展,各种类型的商品逐渐转移到线上销售。在互联网的帮助下,带动企业打开销路,促进商品销售的可持续发展。同时,通过基于微信小程......
  • 会议记录管理系统-计算机毕业设计源码+LW文档
    摘 要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。公司一直以来都非常重视公司信息化的发展,近几年来随着公司规模扩大,业务逐渐增加,公司对会员的管理也愈发的困难。因此,公司提出通过开发会议记录管理系统......