Я пытаюсь реализовать кэш redis в приложении rails. До сих пор я могу кешировать данные активной записи, используя кеш redis. Я могу получить все записи одновременно, используя метод get
. Но мне трудно разобраться, как извлечь одну запись с использованием идентификатора, поскольку данные, создаваемые redis, имеют строковый тип данных.
Ниже приведены данные, кэшированные Redis:
"set" "bookstore:authors" "[{\"id\":1,\"name\":\"Stephenie Meyer\",\"created_at\":\"2018-05-03T10:58:20.326Z\",\"updated_at\":\"2018-05-03T10:58:20.326Z\"},{\"id\":2,\"name\":\"V.C. Andrews\",\"created_at\":\"2018-05-03T10:58:20.569Z\",\"updated_at\":\"2018-05-03T10:58:20.569Z\"}]
Теперь я звоню
authors = $redis.get('authors')
для отображения всех авторов.
Как я могу получить одного автора, используя его идентификатор?
Вспомогательный метод для извлечения авторов
def fetch_authors
authors = $redis.get('authors')
if authors.nil?
authors = Author.all.to_json
$redis.set("authors", authors).to_json
$redis.expire("authors", 5.hour.to_i)
end
JSON.load authors
end