Subscribed unsubscribe Subscribe Subscribe

brpoplpush !!!!!!

redis で job queue を書く時に rpush blpop, lpush brpop の組み合わせでリストに突っ込んで、block してものが来たら取り出すという風な処理が書ける。
けど、 redis には brpoplpush という pop した後に別の list に入れるというコマンドがある。これを使うと pop したら hoge:process みたいな所に一度入れて、その後処理が終わったら lrem コマンドで消す事で確実に処理が終わったということを保障出来る。
けど、一度 rpush blpop の組み合わせで書いてしまうと、色々怖い感じになるので、brpoplpush を使わなくても念のため lpush brpop の組み合わせでやったほうが良さそうと思いました。

RPOPLPUSH – Redis の Pattern: Reliable queue に色々説明が書いてあります。