Как я могу избежать дублирования копий объекта в кеше? - PullRequest
1 голос
/ 18 сентября 2008

Я использую memcache для разработки кэша для слоя модели веб-приложения, одна из моих самых больших проблем - согласованность данных. Мне пришло в голову кэширование данных примерно так: (ключ = запрос, значение = список идентификаторов объектов, результат запроса) для каждого идентификатора списка: (ключ = object.id, значение = объект)

Итак, каждый раз, когда выполняется запрос: Если запрос уже существует, я извлекаю объекты, указанные в списке, из кэша. Если это не так, все объекты списков сохраняются в кэше, заменяя любое другое старое значение.

Кто-то использовал эту альтернативу, это бог? какие-нибудь другие идеи?

Ответы [ 2 ]

1 голос
/ 18 сентября 2008

Кэширование - одна из тех тем, где нет единственно правильного ответа - это зависит от вашего домена.

Политика кэширования, которую вы описываете, может быть достаточной для вашего домена. Тем не менее, вы, кажется, не беспокоитесь о устаревших данных. Часто я ожидал увидеть временную метку для некоторых объектов - если кэшированное значение старше, чем какой-либо системный параметр, оно будет считаться устаревшим и повторно полученным.

Подробнее об алгоритмах кэширования см. Википедия (для начала)

0 голосов
/ 18 сентября 2008

Добро пожаловать в мир параллельного программирования. Вам нужно немного узнать о взаимном исключении . Если вы сообщите нам, для какого языка / платформы вы разрабатываете, мы можем более конкретно описать ваши варианты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...