С 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, исключая сеансовые ключи.

Другие вопросы по тегам