使用redis-rails,如何删除除会话缓存以外的所有内容?

时间:2019-02-23 19:00:23

标签: ruby-on-rails caching redis redis-rails

Rails 5.1应用程序,redis-rails gem 5.0.2

宝石文件

gem "rails", "~> 5.1"
gem "redis-rails"

production.rb

config.cache_store = :redis_store, ENV.fetch("REDISCLOUD_URL")

在session_store.rb

Rails.application.config.session_store :redis_store, servers: [ENV.fetch("REDISCLOUD_URL")]

我希望能够不时清除缓存并可以运行

Rails.cache.clear

为此。但是,它清除了所有内容,我不想删除会话。

我尝试了名称空间,但是在任何地方都找不到很多文档(https://github.com/redis-store/redis-rails

我可以采用哪些命令,配置和方法来解决此问题? 谢谢。

1 个答案:

答案 0 :(得分:1)

也许您可以获得所有缓存键

Rails.cache.instance_variable_get(:@data).keys

并与delete_entry结合使用,但不包括会话密钥。