Одним словом, да.
Rack::Cache
разделяет записи кэша на a MetaStore
и EntityStore
.
Использование памятиНастоятельно рекомендуется использовать реализацию хранилища на основе (кучи или memcached) для MetaStore, в то время как реализация хранилища на основе дисков (файл) часто является удовлетворительной для EntityStore и использует намного меньше памяти.
Ниже предлагаетсяконфигурация memcached через dalli gem .
config.cache_store = :dalli_store
config.action_dispatch.rack_cache = {
:metastore => Dalli::Client.new,
:entitystore => URI.encode("file:#{Rails.root}/tmp/cache/rack/body"),
:allow_reload => false
}
Альтернативное хранилище памяти - Redis , которое можно настроить с помощью @ jodosha redis-store .
Исходя из названия вашего вопроса, люди могут прийти сюда в поисках способа связать несколько слоев кэширования в порядкенаименьшая задержка.
Эта функция предоставляется *1034* каскадным хранилищем * jj , которое является еще одним кеш-хранилищем пользовательских рельсов .Пример Rails:
config.cache_store = [:cascade_store, :stores => [
[:memory_store, :size => 5.megabytes, :expires_in => 15.minutes],
[:mem_cache_store, 'localhost:11211'],
]]