Исходная ситуация: есть голосование и включено кеширование. Требуется: кэшировать и показывать актуальные результаты голосования. Очевидно, задачи противоположные друг другу. Результаты голосования, на мой взгляд, не являются важной информацией и можно забить на это, пологая, что сойдут результаты голосования час назад. Отказаться от кэширования ради голосования смысла нет - значительно вырастет нагрузка без какого либо видимого улучшения качества контента (разница будет всего в паре цифр). Как быть? Ответа у меня нет, постараюсь порассуждать при написании поста - обыкновенные размышления уже не помогают. И так пофантазирую о возможных решениях.

1 - кэшировать страницу и в ней делать php вставку показа актуальных результатов. Недостаток - при каждом открытии страницы будет дергаться бд для запроса голосовалки. В принципе терпимо при активном голосовании - каждые несколько секунд везде голосуют.

2 - сделать дублирующий кеш для голосовалки, а в страницу добавить php (или javascript) код, который бы дергал результаты из кеша голосовалки. Недостаток - перерасход ресурсов на кеш голосовалки. Голосований может быть гораздо больше, чем страниц (например голосование за каждую фотку). И получится, что кеш голосования будет жрать больше чем кеш страниц.

3 - организовать пулл результатов голосований. Недостаток - сложность реализации. После изменений результатов голосования синхронизировать данные в пуле. Дергать пул php скриптом встроенным в кеш страницы. Из очевидных сложностей - подбор размера и состава голосований в пуле. Идеальный вариант - количество голосований на странице и в пуле совпадают. Тогда кеш раздуется всего лишь в два раза - два файла в кеше на одну страницу. Сгодилось бы, если бы одно и тоже голосование было бы только на одной странице и более нигде. Если голосование есть на нескольких страницах сайта, то придется синхронизировать все пулы, что может оказаться слишком ресурсоемким.

Более ничего не придумал. 3 вариант мне кажется перспективным, постараюсь как то оптимизировать его. Во первых - одно голосование может быть только в одном пуле. Разобьем все голосования по пулам, скажем так по 20 (можно наверно и больше - требуется посмотреть на размер файла пула). Результат на страницу дергается из менеджера пулов - запрос id голосования, а оттуда результат. Также изменение результатов тоже пишется через менеджера пулов. Важно, чтобы размер пула превосходил количество голосований на страницу - в самом неблагоприятном случае будет дергаться два пула на страницу. Более часто должно быть соответствие - один пул на страницу. Может быть достигнуто на двоекратном превосходстве размера пула над колвом голосований на страницу.

Модуль кэширования пула можно будет прикрутить и к другим похожим задачам, где требуется точное совпадение цифр. Например колво комментов в анонсах - сейчас оно отстает. При неинтенсивном комментировании отставание на 1-2 цифру не имеет значение, а вот при интенсивном это уже смотрится как глюк сайта.