I have implemented a reliable queue using BRPOPLPUSH. For simple cases it works great. However, there are a few situations when you need to do something else atomically besides just moving an item from one list to another. For example, in my case, I need to move the item and also update a ZSET that keeps scores of the items (since I am implementing a priority queue). However it is not possible to do anything atomically after the BRPOPLPUSH has been executed, which creates a hazard. So I wonder if there is any technical or design reason for not supporting BRPOPLPUSH to be used in LUA scripts or in transactions?
Comment From: rohitpaulk
This was answered in https://github.com/antirez/redis/issues/4091, can be closed.