清空REDIS缓存并重启项目REDIS缓存无重新加载数据

Blade 未结 1 2354
licai
licai 2020-01-13 15:51

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

1. 使用FLUSHALL命令清空REDIS;

2. 重启项目所有服务;

3. REDIS缓存无数据无重新加载;


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

1. 手动清空REDIS之后,重启项目能重新加载缓存;



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

  1. BLADEX 商业版 2.2.2

  2. CENTOS 7.6

  3. REDIS 5.0.7


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

1. 项目启动无报错;



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

  1. REDIS运行正常;

  2. MYSQL数据库字典表有数据;

  3. 数据库运行正常;



1条回答
  •  admin
    admin (楼主)
    2020-01-13 15:56

    重启项目不会加载redis

    系统不是启动的时候去初始化redis的,而是懒加载的模式

    也就是说,去调用这个缓存了,发现没有才会去请求数据库然后放到redis。下次再请求就是从redis取了

    作者追问:2020-01-13 15:56

    但是登陆的时候系统报无法获取角色信息,然后立即查看REDIS,REDIS里无任何数据

    回答: 2020-01-13 15:56

    程序的逻辑在这里,根据userClient来判断是否有roles这个值,没有则会弹出对应的提示

    image.png

    image.png

    一直跟下去,在UserServiceImpl内,是这一块代码获取的roles值

    image.png


    你可以根据断点调试一下,看看是哪里出的问题

    作者追问:2020-01-13 15:56

    我已经跟到这里来了,就是这里执行的时候没有拿到缓存值,REDIS里也是空的,一条数据也没有;


    image.png

    作者追问:2020-01-13 15:56

    发现一个报错:


    Error creating bean with name 'org.springblade.system.feign.ISysClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No fallback instance of type class org.springblade.system.feign.ISysClientFallback found for feign client blade-system


    0 讨论(0)
提交回复