Рельсы.кэш.очистить некоторые ключевые имена?
можно ли как-то запустить Rails.cache.clear
и только четкие ключи с определенным именем / строкой?
Я не хочу очищать весь кэш...просто ключи со строкой blog/post
в имя (т. е. blog/post/1
, blog/post/2
).
Я использую Далли С memcached для моего кэша и работает Rails 3.0.6.
3 ответов
это, как вы можете писать в кэш -
Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)
и для удаления из кэша вы можете использовать delete
действия -
Rails.cache.delete('key')
удалить несколько ключей -
Rails.cache.delete_if {|k, v| k =~ 'key' }
чтобы ответить на мой собственный вопрос...кажется, что учитывая, что я использую memcached, я не могу использовать delete_if
или delete_matched
потому что memcached не поддерживает перечисление или запрос ключей по шаблону (1).
вы можете использовать https://github.com/Phobos98/dalli-delete-matched gem, который добавляет простую реализацию delete_matched
метод для магазина dalli с memcached.