升级应用到iris-6时Redis缓存不支持版本控制报错如何解决
问题原因
Rails 6.1 默认开启了 Active Record 缓存版本化特性,你当前使用的 ActiveSupport::Cache::RedisStore 版本过低,不支持该特性,因此触发报错。
解决方案
提供两种可选方案,优先选择方案一:
方案一:升级 RedisStore 到支持缓存版本化的版本
- 确认 Gemfile 中
redis-store/redis-activesupport系列 gem 的版本要求:仅redis-activesupport>= 5.2.0、redis-store>= 1.9.0 版本才原生支持缓存版本化 - 执行升级命令:
bundle update redis-activesupport redis-store
- 升级完成后可在 rails console 中执行以下代码验证兼容性:
ActiveSupport::Cache::RedisStore.supports_cache_versioning? # 返回 true 即代表适配正常
方案二:手动关闭缓存版本化(仅作为临时过渡方案,不推荐长期使用)
如果暂时无法完成依赖升级,可以手动关闭缓存版本化特性规避报错:
打开 config/application.rb 文件,添加如下配置:
config.active_record.cache_versioning = false
该方案会失去缓存版本化带来的缓存清理效率提升优势,仅适合临时救急,后续建议优先升级依赖彻底解决问题。
内容的提问来源于stack exchange,提问作者Nehapeer
相关产品推荐
相关产品推荐

