1. 程式人生 > >使用Redis做訊息佇列

使用Redis做訊息佇列

基於記憶體的單執行緒資料庫,使Redis的執行緒安全性與效能極高。而Redis的雙向連結串列資料型別(List)天生就可作為訊息佇列儲存訊息.

在這裡就不說訊息佇列的等等一些優點。但是補充一下Redis的List型別的幾個命令,你可以指定將一個元素投送到列表的頭部(左邊)或者尾部(右邊),當然也可以指定從列表的頭部或尾部取出資料.

LPush:新增元素至列表的頭部

 

 RPush:新增元素至列表的尾部

 

LPop:移除並獲取列表的頭部的第一個元素

 RPop:移除並獲取列表的尾部的第一個元素

 

BLpop:移出並獲取列表頭部的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。命令格式:blpop key timeout,當timeout=0時,表示一直阻塞等待,直到有其他客戶端執行rpush或者lpush命令,插入資料後,阻塞才解除.

BRpop:與BLpop相同,不同的是它是移除列表尾部的第一個元素.

如下,開啟兩個客戶端,一個客戶端先使用BLpop阻塞讀取資料,另一個客戶端寫入資料.

OK,到此我想你已經明白了,List的作用已經顯而易見。生產者投入訊息,消費者拿到訊息。而且雙向連結串列的資料型別,投入和拿取資料都特別靈活。是不是感覺很不錯?接著往下看