需求:前台系统通过RPC调用中台系统接口查询图片url。中台考虑到图片地址在资源服务器上传之后是不会改动的,因此通过管理后台上传之后,持久化到中台的Redis缓存中,且没用设置key的缓存时间。前台请求中台接口时直接请求缓存,不回源到数据库,提高并发量及响应速度。
问题:后期考虑到架构设计,将前台系统和中台系统共用的Redis分离,前台请求前台的redis,中台请求中台的redis。这就导致在切换中台redis服务器后,由于前台是直接请求的中台redis,并且redis缓存的数据不存在失效后查询数据库的情况,因此就会导致查询不到数据。
解决方法:管理后台新增批量刷新缓存的按钮,通过按钮触发将数据库数据缓存到redis的方式,来保证切换redis服务器后直接请求缓存可以获取到数据。
注意事项:以后在设计这种redis键没有失效时间,不会回源数据库的情况时,一定要保留手动刷新缓存的功能,避免碰到这种切换缓存服务器时束手无策的情况。