Необходимо хранить кол-во просмотров по интервалу времени, что-бы была возможность выбрать за: последние 24 часа, 30 дней и пол года.
Пока есть один вариант: сделать по принципу «users online», но если делать например, интервал по часу (time() // 3600) для 30 дней, получается ~720 ключей на одну сущность.
Может кто-то уже делал подобное? Какие еще есть варианты?
Можно затолкать все данные по просмотрам в одно значение, каждые 4 байта которого будут содержать количество посещений за один день — и работать с ними через GETBIT/SETBIT.
решение попроще — sorted set
ключ — <название>_<дата>_<час>, значение — число, прибавляется через zadd
в случае с setbit нужны будут блокировки, насколько я понимаю. с zadd — не нужны
старую статистику можно скидывать в базу, например