List Commands
LPUSH, RPUSH, LPOP, RPOP, LRANGE, LMOVE, BLPOP and list operations.
LPUSH / RPUSH
LPUSH queue task1 task2 task3 # prepend (rightmost arg ends up at head)
RPUSH queue task1 task2 task3 # appendReturns the new list length.
LPOP / RPOP
LPOP queue # pop from head
RPOP queue # pop from tail
LPOP queue 5 # pop up to 5 elementsLLEN / LINDEX / LSET
LLEN queue
LINDEX queue 0 # first element
LINDEX queue -1 # last element
LSET queue 2 "new"LRANGE
LRANGE queue 0 -1 # all elements
LRANGE queue 0 9 # first 10LINSERT / LREM / LTRIM
LINSERT queue BEFORE "pivot" "new"
LINSERT queue AFTER "pivot" "new"
LREM queue 2 "value" # remove 2 occurrences from head
LREM queue -2 "value" # remove 2 occurrences from tail
LTRIM queue 0 99 # keep only first 100 elementsLPOS
Find position of an element:
LPOS queue "task"
LPOS queue "task" RANK 2 # second occurrence
LPOS queue "task" COUNT 0 # all positionsLMOVE / RPOPLPUSH
Atomically move between lists:
LMOVE src dst LEFT RIGHT # pop src head, push dst tail
LMOVE src dst RIGHT LEFT
RPOPLPUSH src dst # alias for LMOVE RIGHT LEFTBLPOP / BRPOP / BLMOVE
Blocking pops (returns immediately if data exists, nil if empty):
BLPOP queue 0
BRPOP queue 0
BLMOVE src dst LEFT RIGHT 0Use Cases
# Task queue
LPUSH jobs "task:123"
RPOP jobs
# Recent activity feed
LPUSH activity:user:1 "login"
LTRIM activity:user:1 0 99 # keep last 100