我正在使用rails 4.2.7,默认情况下,没有动作缓存或页面缓存,它将在不支持页面缓存的Heroku上运行。所以,我正在使用https://github.com/rails/actionpack-action_caching gem进行动作缓存。
我的问题是我应该如何使行动缓存无效?我正在使用Memcached(memcachier)作为缓存存储
1.我应该使用cache_sweepers(观察者),我认为在rails 5上不支持cache_sweepers(观察者)来清除缓存
2.使用expire_action方法从控制器操作中清除缓存,但是内容是通过rails_admin添加的,而另一个控制器只包含索引和show actions为访问者提供内容。所以,如果可能的话,我可以从rails_admin或模型中做出明确的操作
3. 自动过期缓存密钥,如片段缓存根据将在页面上显示的各种模型对象及其cache_key创建唯一密钥,这样密钥将在对象更改时自动过期,类似片段缓存如何工作。我倾向于通过传递哈希为cache_path
我也使用fresh_when
和CloudFlare作为CDN使用HTTP缓存,如果我使用Memcached使用proxy_cache,或者我不应该使用CloudFlare并且它将重复相同。您是否建议仅使用此HTTP缓存或将其与action_caching一起使用或仅使用action_caching?