Как организовать таблицу БД? В том числе и индексы
Вижу такой вариант.
Есть таблица [ post_id | time ], индекс по time (по post_id нужен? или лучше опустить для более быстрой вставки в БД?)
Где post_id - айди просмотренного поста, а time - время просмотра.
Раз в пять минут выгружать оттуда итоги с количеством просмотров с отбором по time >= now() - 24h
DTX: Можно и БД обойтись. И она даже не будет проседать с нормальным конфигом на высоких нагрузках. Но Redis - это Redis. Там скорость GETов и SETов доходит до миллиона операций в секунду на моём ноутбуке.