Я хочу кэшировать около 30 000 записей (объектов), каждая из которых представляет информацию о проезде автобуса на транспортной остановке.
Каждая запись будет содержать около десяти атрибутов (название остановки, время проезда, тип транспортного средства и т. д.) .
Производитель будет отвечать за подачу кэша по мере его продвижения, обновляя значения в реальном времени (включая время прохождения, если оно изменится).
Потребители затем придут и потреблят кеш, Цель состоит в том, чтобы, если задействован новый потребитель, он извлекал все данные, а затем получал изменения по мере их возникновения.
В конце концов, если потребитель отключается, а затем возвращается, ему нужно будет иметь возможность получить изменения, внесенные с момента его последнего подключения.
Я думаю, что смогу использовать хэш-структуру данных для хранения всех значений:
Код: Выделить всё
HSET bus_stop: name "Stop Name" time "12:00" vehicle "Bus"
Код: Выделить всё
SCAN 0 MATCH "bus_stop:*" COUNT 1000
А потом я подумал, что с этого момента я буду использовать потоки STREAM для получения обновлений и, при необходимости, обработки с потерянными соединениями.
Это правильный подход?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... me-updates
Мобильная версия