Кеширование постраничных результатов, чистка при обновлении - как решить?

Я создал форум, и мы внедряем решение для кэширования apc и memcache, чтобы сохранить работу базы данных.

Я начал реализовывать слой кэша с ключами, такими как «Categories :: getAll», и, если у меня были данные, специфичные для пользователя, я бы добавил ключи с такими вещами, как идентификатор пользователя, так что вы получите"User::getFavoriteThreads|1471", Когда пользователь добавляет новый избранный поток, я удаляю ключ кеша, и он воссоздает запись.

However, and here comes the problem:

Я хотел кешировать темы на форуме. Достаточно просто, & quot; Форум :: getThreads | $ iForumId & quot ;. Но ... При разбиении на страницы мне нужно разделить это на несколько записей в кеше, например

"Forum::getThreads|$iForumId|$iLimit|$iOffset".

Что нормально, пока кто-нибудь не создаст новую тему на форуме. Теперь мне придется удалить все ключи в"Forum::getThreads|$iForumId", независимо от того, что предел и смещение.

Что было бы хорошим способом решения этой проблемы? На самом деле, я бы лучше не проходил через все возможные пределы и смещения, пока не найду что-то, что больше не соответствует.

Благодарю.

Ответы на вопрос(8)

Ваш ответ на вопрос