Redis的佇列和訊息佇列的區別 concept

2022-05-07 07:21:09 字數 785 閱讀 7198

用redis作為佇列效率高,而且簡單易用

使用場景

主要應用在網路中實現非同步任務,reids可以充當訊息佇列實現兩種模式:生產者 ->消費者,發布者->訂閱者 第一種方式是一對一,後者是一對多

生產者/消費者模型

生產者模型需要存在生產者和消費者兩方,而在redis中佇列的儲存和獲取可以作為訊息佇列被生產者和消費者使用

生產者redis 在其中做快取的作用,將任放置到queue佇列裡面,其實redis有lpush和rpush,意思是從左邊插入列隊還是右邊插入列隊,這就是生產者部分,將任務插入指定的佇列中。

消費者簡單的說就是拿出來(brpop,rpop),佇列是按順序取任務的,一般是左邊插入,右邊取出,redis有brpop和rpop,可以設定時間以秒為單位,如果佇列是空的,那麼先不返回,

等待一會(設定的時間【brpop queue 10】,等待10秒),如果在這期間有新的任務插入,那麼就取出任務返回,還是沒有的話,返回空。

訂閱/發布模型簡單來說是由發布者向訂閱者傳送任務,同樣任何訂閱者都可以獲取任務。

發布者使用publish channel task 來發布相關的任務,而訂閱者則是使用subscribe channel,這是乙個監聽命令,redis會一直監聽這個channel,如果發布者發布新的任務,

監聽命令會返回任務,直到訂閱者主動退出監聽,但是redis也可以為這個設定超時,保證監聽的有效性,預設如果60秒內沒收到資訊就異常退出,當然了這個可以配置。

常用命令:

Redis訊息佇列

redis的訊息佇列使用簡單,沒有什麼配置,比activemq要輕量級太多,當然功能也比較簡單,如果只需要簡單的訂閱以及發布,可以考慮使用它。訂閱操作 命令為 subscribe channel channel 如 1 所示,即成功訂閱頻道 redis.blog 發布操作 命令為publish ch...

Redis 訊息佇列

訊息佇列,是在構建大型專案的時候 經常會用到的中間價系統,使用訊息佇列有很多好處,例如 1.實現各元件之間的松耦合。利用訊息系統可以使各個元件之間面向資料,而不是面向具體的介面。2.易於擴充套件。對於訊息系統而言,消費者和生產者都可以橫向擴充套件。提到佇列,很自然的就會想到redis的列表型別,可以...

Redis訊息佇列

redis的訊息佇列使用簡單,沒有什麼配置,比activemq要輕量級太多,當然功能也比較簡單,如果只需要簡單的訂閱以及發布,可以考慮使用它。訂閱操作 命令為 subscribe channel channel 如 1 所示,即成功訂閱頻道 redis.blog 發布操作 命令為publish ch...