memcached и счетчик просмотров

foma19

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

fixxxer

К.О.
Партнер клуба
найти компромисс :) тебе так важна потеря счетчиков за полчаса?

ну или там редис какой или что угодно с персистенцией, но тут впрочем то же самое по сути, потеря за время между скидыванием на диск.
 

foma19

Новичок
Тогда наверно остановлюсь на выборе оптимального промежутка времени между записями в базу. думаю и правда потеря за минут 30-60 это ничего страшного
 

HraKK

Мудак
Команда форума
Если у тебя большое количество посетителей и не так важна в точность то подойдет такой метод
if( mb_rand(10)==6 )
{
count+=10;
}
который в десять раз меньше запросов шлет даже в мемкеш. Применять строго если +++ посещений.
 

MiksIr

miksir@home:~$
Использую базу + добавку из мемкеша. Посещения делают +1 в мемкеш и по достижении некого числа X - апдейт в базу и обнуление счетчика мемкеша. Таким образом мы потеряем не более, чем X просмотров. Минус - последние просмотры могут никогда и не записаться. Можно усложнить вводом таймстампа.
 

foma19

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

MiksIr

miksir@home:~$
У мемкеша есть мультигит - забирать пачку данных по списку ключей.
 
Сверху