Ответ 1
Если вы используете только BLPOP для удаления сообщения из очереди, и ваш пользователь сообщения не может его обработать, сообщение нужно будет переупорядочить, чтобы он не исчез навсегда вместе с несостоявшимся потребителем.
Для более длительной обработки сообщений необходимо сохранить список обрабатываемых сообщений, чтобы их можно было переупорядочить в случае сбоя.
[B] RPOPLPUSH идеально подходит для этого сценария; он может атомизировать сообщение из очереди сообщений и толкает его в очередь обработки, чтобы приложение могло ответить в случае сбоя на стороне потребителя.
http://redis.io/commands/rpoplpush
Фактическая повторная очередь остается в приложении, но эта команда redis обеспечивает основу для этого.
Есть также некоторые варианты развертывания очередей, использующие redis, плавающие вокруг Интернета, такие как RestMQ [http://www.restmq.com/]