redis list行列安全用法——RPOPLPUSH
参考:http://redisdoc.com/list/rpoplpush.html
在一个原子时间内,执行以下两个动作:
- 将列表
source
中的最后一个元素(尾元素)弹出,并返回给客户端。 - 将
source
弹出的元素插入到列表destination
,作为destination
列表的的头元素。
- 使用 RPOPLPUSH 命令(或者它的阻塞版本 BRPOPLPUSH )可以解决这个问题:因为它不仅返回一个消息,同时还将这个消息添加到另一个备份列表当中,如果一切正常的话,当一个客户端完成某个消息的处理之后,可以用 LREM 命令将这个消息从备份表删除。