вопрос: как определить что данные кэша пора обновить?
пример: у меня хранятся список состояний заказа, этот список гружу из базы и пихаю в кэш.
обновить кэш нужно при изменении параметров в списке (название, текст в описании, текст письма, ...), КАК я могу узнать и быстро получить значение что пора обновить КЭШ???
обновление кэша по времени не интересно, уже работает так.
1. DlTA - 28 Января, 2021 - 09:59:45 - перейти к сообщению
2. Мелкий - 28 Января, 2021 - 10:08:00 - перейти к сообщению
"в программировании есть только две сложные вещи: инвалидация кеша, выбор имени переменной, и ошибки на единицу" (Джефф Этвуд)
При обновлении данных сбрасывайте связанные с этими данными кэши. Возможно потребует порядком усилий для поиска всех мест, откуда изменения выполняются.
При обновлении данных сбрасывайте связанные с этими данными кэши. Возможно потребует порядком усилий для поиска всех мест, откуда изменения выполняются.
3. DlTA - 28 Января, 2021 - 11:03:31 - перейти к сообщению
то есть, измени данные в базе по данной таблице то все выборки где есть выборка из данной таблицы обнули
а есть что то, чтоб свой лесопед не лепить
нужно получить список таблиц в запросе, где-то хранить
но сомневаюсь что будет такое...
а есть что то, чтоб свой лесопед не лепить
нужно получить список таблиц в запросе, где-то хранить
но сомневаюсь что будет такое...
4. Lolya - 21 Февраля, 2021 - 11:05:44 - перейти к сообщению
DlTA пишет:
а есть что то, чтоб свой лесопед не лепить
нужно получить список таблиц в запросе, где-то хранить
нужно получить список таблиц в запросе, где-то хранить
Удаление кеш-файла
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- $rootpath = ROOT_PATH;
- $Blrelizs_cache = $rootpath."cache/relizs.cache";if(file_exists($Blrelizs_cache)){unlink($rootpath."cache/relizs.cache");}
создание кеша у вас должно уже быть, если вы с ним работаете, у всех системы кеша разные.
Собственно пример:
Если нет кеша (отсутстует), то выполнить запрос ***. Иначе прочитать данные кеша.
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- // выполнить запрос на прочтение данных из базы
- }else
- // иначе считываем кеш вашей системой кеширования
Разберетесь?