Лично я предпочитаю использовать redis для такого типа вещей, а не memcached.У меня есть приложение, в котором я довольно широко использую Redis, используя его так же, как вы описали.Если я выполняю вызов, который не кэшируется, время загрузки страницы превышает 5 секунд, а при повторном использовании время загрузки падает примерно до 0,3 секунды.Вы также можете установить время истечения, которое можно изменить довольно легко.Я бы сделал что-то подобное для извлечения данных из кеша.
require 'redis'
get '/my_data/:id' do
redis = Redis.new
if redis[params[:id]]
send_file redis[params[:id]], :type => 'application/json'
end
end
Затем, когда вы захотите сохранить данные в кеш, возможно, что-то вроде этого:
require 'redis'
redis = Redis.new
<make API calls here and build your JSON>
redis[id] = json
redis.expire(id, 3600*24*5)