Я создал форум, и мы внедряем решение для кэширования apc и memcache, чтобы избавить базу данных от некоторой работы.
Я начал реализовывать слой кеша с такими ключами, как «Categories::getAll», и если бы у меня были пользовательские данные, я бы добавил к ключам такие вещи, как идентификатор пользователя, так что вы получите "User::getFavoriteThreads|1471"
. Когда пользователь добавлял новый любимый поток, я удалял ключ кеша, и он воссоздавал запись.
Однако здесь возникает проблема:
Я хотел кэшировать темы на форуме. Достаточно просто, "Forum::getThreads|$iForumId". Но... С нумерацией страниц мне пришлось бы разделить это на несколько записей кеша, например
"Forum::getThreads|$iForumId|$iLimit|$iOffset".
Все в порядке, пока кто-нибудь не создаст новую тему на форуме. Теперь мне придется удалить все ключи под "Forum::getThreads|$iForumId"
, независимо от предела и смещения.
Что было бы хорошим способом решения этой проблемы? Я действительно предпочел бы не перебирать все возможные ограничения и смещения, пока не найду что-то, что больше не соответствует.
Спасибо.