You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Rails缓存,让缓存键按环境自动添加命名空间?

Rails 6.1全局配置缓存命名空间(环境隔离)

直接在Rails缓存配置里全局设置命名空间,就能让所有缓存操作自动带上环境标识,不用每次调用都手动传参数,彻底避免staging和production环境的缓存互相干扰。

配置方法

可以选择全局统一配置,或者分环境单独设置:

方式1:全局统一配置(application.rb)

如果两个环境的memcached服务器地址一致,直接在全局配置中动态使用Rails.env作为命名空间:

# config/application.rb
config.cache_store = :mem_cache_store, {
  servers: ['localhost:11211'], # 替换为你的memcached实际地址
  namespace: Rails.env
}

方式2:分环境单独配置

如果需要给不同环境设置更自定义的命名空间(比如加上应用前缀),可以在对应环境的配置文件里单独设置:

# config/environments/production.rb
config.cache_store = :mem_cache_store, 'localhost:11211', {
  namespace: 'my_app_production'
}

# config/environments/staging.rb
config.cache_store = :mem_cache_store, 'localhost:11211', {
  namespace: 'my_app_staging'
}

生效验证

配置完成后,所有缓存操作(Rails.cache.write、Rails.cache.read、Rails.cache.fetch等)都会自动把命名空间拼接到缓存键上,无需再手动传入namespace参数。

额外建议

如果服务器上之前存在未带命名空间的缓存数据,建议清理memcached避免残留干扰:

echo "flush_all" | nc localhost 11211

内容的提问来源于stack exchange,提问作者jibai31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 18:42:12