Se utilizzi BLPOP da solo per rimuovere un messaggio dalla coda e il consumer del messaggio non riesce a elaborarlo, il messaggio dovrà essere rimesso in coda, per evitare che scompaia per sempre insieme al consumer fallito.
Per un'elaborazione dei messaggi più duratura, è necessario mantenere un elenco di messaggi elaborati in modo che possano essere rimessi in coda in caso di errore.
[B]RPOPPLUSH è perfetto per questo scenario; può estrarre in modo atomico un messaggio dalla coda dei messaggi e inviarlo a una coda di elaborazione in modo che l'applicazione possa rispondere in caso di errore da parte del consumatore.
http://redis.io/commands/rpoplpush
Il reinserimento effettivo è lasciato all'applicazione, ma questo comando redis fornisce le basi per farlo.
Ci sono anche alcune implementazioni drop-in-place di code che utilizzano redis fluttuanti sul Web, come RestMQ [ http://www.restmq.com/ ]