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