С redis-rails, как удалить все, кроме кеша сессий?
Приложение Rails 5.1, гем redis-rails 5.0.2
Gemfile
gem "rails", "~> 5.1"
gem "redis-rails"
в производстве.рб
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 ответ
Решение
Может быть, вы можете получить все ключи кеша
Rails.cache.instance_variable_get(:@data).keys
и использовать его в сочетании с delete_entry, исключая сеансовые ключи.