问一下,CacheUtil这个缓存如果我想查看,或者清除,是在redis里吗?

Blade 未结 2 830
菲哥
菲哥 剑圣 2021-06-01 11:14

一、该问题的重现步骤是什么?

1. 在调试bladex的resource服务的时候,碰到个问题。问一下,CacheUtil这个缓存如果我想查看,或者清除,是在redis里吗?为什么在redis里找不到呢

2. CacheUtil.png

3.redis.png


二、你期待的结果是什么?实际看到的又是什么?

CacheUtil这个缓存的机制是什么?为什么我取OSS的指定配置的时候,这里的缓存总是minio的配置,不是七牛的配置。它是在什么时候写入OSS的配置缓存的呢?能否简单解释下。


我在改写从biz后台的自定义微服务去调用框架的resource微服务,去取OSS的指定配置的时候,getOSS的函数里,

Oss oss = CacheUtil.get(RESOURCE_CACHE, OSS_CODE, key, () -> {

总能从缓存中取出minio的配置,我想取的是七牛的配置,我跟踪了下,发现它总能从缓存中取出minio的配置。可是我在redis里却找不到缓存的值,我很疑惑它的缓存到底保存在哪里的,如果是内存,我服务已经重启了多遍。如果在redis里,也没找到。所以问问。


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2021-06-01 20:11

    可以看下CacheUtil底层,他使用的是抽象的CacheManager,也就是说当前缓存注入的是什么,他就用什么,默认的是redis

    image.png


    get方法的核心逻辑已经红字标明,你只要跟着调试,看看当前请求的cacheName是什么,然后再去redis或者其他的缓存里查找

    image.png

    image.png

    0 讨论(0)
  • 2021-06-01 22:24

    QQ20210601-0.png

    我仔细查了下,发现问题了,原来开发服务器装的redis有2个,端口不一样。所以,怪不得找不到。晕。

    0 讨论(0)
提交回复