lpush + lpop = stackapp
127.0.0.1:6379> lpush mylist 1 2 3 4 5 (integer) 5 127.0.0.1:6379> lpop mylist "5" 127.0.0.1:6379> lpop mylist "4" 127.0.0.1:6379> lrange mylist 0 -1 1) "3" 2) "2" 3) "1"
lpush + rpop = queuespa
127.0.0.1:6379> lpush mylist 4 5 (integer) 5 127.0.0.1:6379> lrange mylist 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> rpop mylist "1" 127.0.0.1:6379> rpop mylist "2" 127.0.0.1:6379> lrange mylist 0 -1 1) "5" 2) "4" 3) "3"
lpush + ltrim = capped collectioncode
ltrim [ltrim key range_l range_r]:保留區域類的元素,其餘的刪除blog
127.0.0.1:6379> rpush mylist 2 1 (integer) 5 127.0.0.1:6379> lrange mylist 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> ltrim mylist 2 3 OK 127.0.0.1:6379> lrange mylist 0 -1 1) "3" 2) "2"
lpush + brpop = message queue隊列
Redis Brpop 命令移出並獲取列表的最後一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。消息隊列
brpop mylist 10
it
假如在指定時間內沒有任何元素被彈出,則返回一個 nil 和等待時長。 反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。io
127.0.0.1:6379> lpush mylist 1 2 3 4 5 (integer) 5 127.0.0.1:6379> brpop mylist 10 1) "mylist" 2) "1" 127.0.0.1:6379> brpop mylist 100 1) "mylist" 2) "2" 127.0.0.1:6379> brpop mylist 10000 1) "mylist" 2) "3" 127.0.0.1:6379> brpop mylist 10 1) "mylist" 2) "4" 127.0.0.1:6379> brpop mylist 10 1) "mylist" 2) "5" 127.0.0.1:6379> brpop mylist 10 (nil) (10.05s)