суббота, 19 ноября 2011 г.

Кеширование и инвалидация кеша

Привет всем.

Вот допустим мемкеш, мы там можем класть только пары вида
ключ-значение. Взять, положить. Нужно предусмотреть валидацию кеша для
определенной модели/структуры данных после обновления данных в СУБД.
Как это сделать без очистки ВСЕГО кеша? Мы ведь не можем пройтись по
ключам в мемкеше и удалить только те которые начинаются, например, с
определенного префикса? Как решать проблему?

Можно хранить список всех ключей в каком-то специальном ключе.
Можно ввести какую-то переменную в которую класть дату инвалидации
кеша для определенной модели, потом при get() сверяться с этой датой,
если в кеше объект более старый - инвалидировать. Но нужно еще для
каждой записи кеша хранить дату обновления.

Получается что код с логикой кеширования будет разрастаться и разрастаться.
Как решается эта проблема в джанге и кто что использует?

--
Arseniy Sluchevskiy, Bryansk, Russia

Комментариев нет:

Отправить комментарий