12Redis - 存储list(使用场景)

rpoplpush的使用场景:

Redis链表经常会被用于消息队列的服务,以完成多程序之间的消息交换。假设一个应用程序正在执行LPUSH操作向链表中添加新的元素,我们通常将这样的程序称之为“生产者(Producer)”,而另外一个应用程序正在执行RPOP操作从链表中取出元素,我们称这样的程序为“消费者(Consumer)”。如果此时,消费者程序在取出消息元素后立刻崩溃,由于该消息已经被取出而且没有被正常处理,那么我们就可以认为该消息已经丢失,由此可能会导致业务数据的丢失,或业务状态的不一致等现象的发生。然而通过使用RPOPLPUSH命令,消费者程序在从主消息队列中取出消息之后在将其插入到备份队列中,知道消费者程序完成正常的处理逻辑后再讲该消息从备份队列中删除。同时我们还可以提供一个守护进程,当发现备份队列中的消息过期时,可以重新将其再放回到主消息队列中,以便其它的消费者程序继续处理。
12Redis - 存储list(使用场景)_第1张图片

你可能感兴趣的:(#,中间件,-,Redis)