Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Например кеширование данных для каждого пользователя скорее всего будет неэффективно при большом количестве пользователей. Если кешировать данные для всех пользователей разом, то возникнут проблемы с устареванием данных и когерентностью кеша.
get_something
if cached
return cached
else
cached = ...
return cached
set_something:
...
drop cached
def get_something(id):
if not self.__cached:
self.__cached = self._get_something()
return self.__cached
def set_something(id):
self.__cached = None
....
, $expire".NAMESPACE-PREFIX-id, где NAMESPACE отделяет друг от друга виды сущностей, а PREFIX отдельные кеши внутри сущности.Менять префиксы не самый лучший способ.
Synchronized cache, синхронизированный кеш – клиент вместе с данными получается метку последнего изменения и может спросить у поставщика не изменились ли данные, чтобы повторно из не запрашивать. Такой тип кеширования позволяет всегда иметь свежие данные, но очень сложен в реализации.
Storage.cache(dependency).get(criteria)
Стратегия кеширования в приложении