Подтвердить что ты не робот

Rails.cache.clear некоторые ключевые имена?

Возможно ли как-то запустить Rails.cache.clear и удалить только ключи с определенным именем/строкой?

Я не хочу очищать весь кеш... просто клавиши со строкой blog/post в имени (т.е. blog/post/1, blog/post/2).

Я использую dalli с memcached для моего кеша и запуска Rails 3.0.6.

4b9b3361

Ответ 1

Чтобы ответить на мой собственный вопрос... кажется, что, учитывая, что я использую memcached, я фактически не могу использовать delete_if или delete_matched, потому что memcached не поддерживает перечисление или запрос ключей по шаблону (1).

Ответ 2

Вот как вы можете писать в кеш -

Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)

и для удаления из кеша вы можете использовать delete action -

Rails.cache.delete('key')

Удалить несколько клавиш -

Rails.cache.delete_if {|k, v| k =~ 'key' }

Ответ 3

Вы можете использовать https://github.com/Phobos98/dalli-delete-matched gem, который добавляет простую реализацию метода delete_matched для хранилища dalli с memcached.