springboot中使用了@Cacheable并且以redis作为缓存。之后在redis里也找到了这个key,但问题是获取value时为空。查看了注解在没有设置value的情况下value默认为{},即empty list or set。但为什么即便是empty list or set还是可以通过缓存的方式获取到缓存呢?Debug模式下,当这个缓存的key还存在时,调用方法时并没有额外的日志也说明了走了缓存,疑惑的点就在于redis中缓存又为空,不清楚到底如何获取到的。
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
springboot cacheable后redis中有key但value为empty list or set,缓存在哪个位置呢?
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
皮蛋不吃粥 2022-07-11 09:36关注@Cacheable 里面的value属性和cacheName属性就是同一个意思,就是Redis里面的Key,这里的value不是你Redis里面的value
而这里缓存存的值是你查询后的结果,也就是你的R会存到Redis中。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2022-07-05 16:09回答 1 已采纳 redis key 加个前缀或者后缀
- 2020-05-29 16:53回答 1 已采纳 https://blog.csdn.net/Stephanie17395/article/details/100902746
- 2022-04-10 22:00
使用springboot集成ehcache使用时,被@Cacheable注解的方法所在的类,使用@autowired自动注入时缓存无效,使用getbean时缓存生效 java spring boot 有问必答 缓存
回答 2 已采纳 还能这么用的?你这不是自己new了一个Context,然后springboot创建了一个context,相当于两个context么,而且两个context并没有什么关系,你的applicationCo - 2023-07-29 01:35AI天才研究院的博客 本文将详细介绍如何在Spring Boot项目中集成Redis,并使用它来作为缓存服务。Redis是一个开源的高级键值存储数据库,它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等。它提供内存保护机制,可以...
- 2019-09-07 13:10回答 2 已采纳 在使用redis或ehcache缓存时,你需要将cacheable中的参数指向对应缓存定义的bean的名字。如果都不导入,即cacheable的value值是缺省值时,使用的是spring内置的缓存
- 2022-06-16 10:05回答 1 已采纳 redisTemplate 是Spring集成RedisCacheManger,是Spring-Cache
- 2022-04-26 09:55回答 3 已采纳 子类重写、实现父类的方法时,其父类对应的注解是不会继承下来的。所以你这种情况: 1)子类重写方法后不加 @Cacheable 注解,外部调用这个方法是不会有缓存的。 2)如果子类增加了
- 2021-03-11 00:52Java笔记虾的博客 来源:my.oschina.net/xiaolyuh/blog/1600987问题描述:通过使用redis和Caffeine来做缓存,我们会发现一些问题。如果只使用redis来做缓存我们会...
- 2019-03-04 12:18回答 1 已采纳 serviceImpl层 private Map map = new HashMap<>(); 作为其它表外键(但也没有强制要求,要用也是可以)。 user_name应
- 2022-11-23 18:18回答 1 已采纳 在condition中,无法获取#result,你可以用unless,反转下条件就行了。
- 今夕何夜的博客 一、SpringBoot集成SpringCache 1.集成SpringCache,自需要在pom中加入以下依赖: 2.需要在application.properties中配置属性: 3.使用@EnableCaching注解开启缓存 4.简单介绍常用注解 二、自定义...
- 2020-12-30 23:01陈总经理的博客 实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度。将用户频繁访问的内容存放在离用户最近,访问速度最快...
- 2023-06-16 21:19今天还没打卡噢的博客 springboot redis实现缓存的例子
- 2023-12-15 10:36天不生我小金的博客 性能问题1:redis客户端发送多条请求,后面的请求需要等待前面的请求处理完后,才能进行处理,而且每个请求都存在往返时间RRT(Round Trip Time),即使redis性能极高,当数据量足够大,也会极大影响性能,还可能会...
- 2022-10-05 16:12玛卡巴咖的博客 springboot集成redis和图片验证,生成图片验证,将结果放在redis中,然后登录的时候验证时从redis中获取这个图片答案,获取方式通过每次调用生成验证码时要传入一个key,所以key每次都不一样,缓存通过key存,也通过...
- 2024-03-06 23:18kkkkatoq的博客 Spring Boot 集成了多种cache的实现,如果你没有在配置类中声明CacheManager或者CacheResolvoer,那么SpringBoot会按顺序在下面的实现类中寻找:每次调用需要缓存功能的方法时,Spring会检查检查指定参数的指定的...
- 2023-11-13 22:48A尘埃的博客 SpringBoot整合Redis 开发者只需要引入 Spring Data Redis 依赖,然后简单配下 redis 的基本信息,系统就会提供一个 RedisTemplate 供开发者使用 结合 Cache 的用法,Spring3.1 中开始引入了令人激动的 Cache,在 ...
- 2025-01-05 23:15码农小旋风的博客 说明一下,其中 @Cacheable 中的 value 值是在 CachingConfig的cacheManager 中配置的,那里是为了配置我们的缓存有效时间。另外,Cache 相关的注解还有几个,大家可以了解下,不过我们常用的就是 @Cacheable,一般...
- 2021-07-06 11:47bug–0/1的博客 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 Redis),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 ...
- 没有解决我的问题, 去提问