w3resource

Redis Lists: BLPOP

Redis BLPOP Command

Redis BLPOP command is used to blocks the connection when there are no elements to pop from any of the given lists or remove and get the first element in a list if available. An element is popped from the head of the first list that is non-empty.

Here are some common uses and scenarios for the "BLPOP" command:

  • Queue Processing: Implement blocking queue consumers that wait for new elements to process, ensuring tasks are handled as soon as they are available.
  • Task Management: Handle tasks in a distributed system where workers wait for new tasks to be added to a list, promoting efficient task distribution.
  • Event Handling: Block until events or messages are available in a list, making it suitable for real-time applications that require immediate processing.
  • Load Balancing: Distribute workload among multiple workers by having them block and wait for new tasks, improving resource utilization.

Syntax:

BLPOP LIST1 LIST2 .. LISTN TIMEOUT    

Available since

2.0.0.

Return Value

String reply, value of element stored at key or nil

Return Value Type

String

Example: Redis BLPOP

127.0.0.1:6379> RPUSH mycolor1 R G B
(integer) 3
127.0.0.1:6379> RPUSH mycolor2 Y O P
(integer) 3
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor1"
2) "R"
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor1"
2) "G"
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor1"
2) "B"
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor2"
2) "Y"
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor2"
2) "O"
127.0.0.1:6379> BLPOP mycolor mycolor1 mycolor2 30
1) "mycolor2"
2) "P"
127.0.0.1:6379> BLPOP  mycolor mycolor1 mycolor2 30
(nil)
(30.03s)

Above example will block the client for 30 seconds to execute any command. If any data comes in the specified key lists then it returns otherwise after 30 seconds nil value is returned.

Previous: HSCAN
Next: BRPOP



Follow us on Facebook and Twitter for latest update.