Last updated 3 years ago
Was this helpful?
source
destination
timeout:<integer>
callback
brpoplpush為rpoplpush的阻塞(blocking)版本,關於阻塞概念請參考,當source列表包含非空元素時,其rpoplpush完全相同;當source為空列表時,則會阻塞執行緒,直到source被推送新元素或超過阻塞時間(timeout)才會回傳結果,timeout為0則不限制阻塞時間。
timeout
client.brpoplpush('src:1', 'dst:1', 0, (err, popItem) => { console.log('First pop:', popItem); }); client.lrange('src:1', 0, -1, redis.print); client.lrange('dst:1', 0, -1, redis.print);
> redis-cli 127.0.0.1:6379> rpush src:1 iphone1 iphone2 iphone3 iphone4 (integer) 4
由於source跟destination已明確定義列表Key資訊,與brpop不同,brpoplpush不會再回傳Key資訊。
First pop: iphone4 Reply: iphone1,iphone2,iphone3 Reply: iphone4