@kunashir
Ruby/Rails программист

Как хранить данные в Redis?

Добрый день.

Есть приложение на ROR, возникла такая задача: нужно отправлять уведомления на клиента (мобильное приложение) и ждать подтверждения, если подтверждения не было в течение 5 секунд уведомление повторить. С отправкой проблем нет - все работает. Хранить уведомление до подтверждения решено в Redis, а когда клиента пришлет подтверждение удалять их из очереди на повторную отправку. Все загвоздка как хранить в Redis. В чем проблема: для определения необходимости повторной отправки каждую секунду запускается фоновая задача, и если у уведомления поле sec совпадает с Time.now.sec % 5, то ее нужно отправить. Таким образом, для отправки нужна выборка по полю sec, а когда клиент присылает подтверждение надо найти по типу уведомления и пользователю (user_id).
Вывод: получается нужны два разных ключа! Набросал вариант с полным перебором и восстановлением данные в хеш - но это очень медленно. Есть еще вариант просто матчить по строкe без JSON.parse - должно быть быстрей, но тоже кажется не очень правильно.
Может у Redis есть какие-то варианты для подобных случаев? Или проблема в самом решение?
  • Вопрос задан
  • 694 просмотра
Пригласить эксперта
Ответы на вопрос 1
@spotifi
MQ для этой цели подходят невообразимо лучше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы