rabbitmq和redis用作訊息佇列的區別

2021-10-01 03:31:00 字數 1004 閱讀 8419

將redis發布訂閱模式用做訊息佇列和rabbitmq的區別:

可靠性

redis :沒有相應的機制保證訊息的可靠消費,如果發布者發布一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中;

rabbitmq:具有訊息消費確認機制,如果發布一條訊息,還沒有消費者消費該佇列,那麼這條訊息將一直存放在佇列中,直到有消費者消費了該條訊息,以此可以保證訊息的可靠消費;

實時性

redis:實時性高,redis作為高效的快取伺服器,所有資料都存在在伺服器中,所以它具有更高的實時性

消費者負載均衡

rabbitmq佇列可以被多個消費者同時監控消費,但是每一條訊息只能被消費一次,由於rabbitmq的消費確認機制,因此它能夠根據消費者的消費能力而調整它的負載;

redis發布訂閱模式,乙個佇列可以被多個消費者同時訂閱,當有訊息到達時,會將該訊息依次傳送給每個訂閱者;

永續性

redis:redis的持久化是針對於整個redis快取的內容,它有rdb和aof兩種持久化方式(redis持久化方式,後續更新),可以將整個redis例項持久化到磁碟,以此來做資料備份,防止異常情況下導致資料丟失。

rabbitmq:佇列,訊息都可以選擇性持久化,持久化粒度更小,更靈活;

佇列監控

rabbitmq實現了後台監控平台,可以在該平台上看到所有建立的佇列的詳細情況,良好的後台管理平台可以方面我們更好的使用;

redis沒有所謂的監控平台。

總結

redis: 輕量級,低延遲,高併發,低可靠性;

rabbitmq:重量級,高可靠,非同步,不保證實時;

rabbitmq是乙個專門的amqp協議佇列,他的優勢就在於提供可靠的佇列服務,並且可做到非同步,而redis主要是用於快取的,redis的發布訂閱模組,可用於實現及時性,且可靠性低的功能。

rabbitmq和redis用作訊息佇列的區別

可靠性 redis 沒有相應的機制保證訊息的可靠消費,如果發布者發布一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中 rabbitmq 具有訊息消費確認機制,如果發布一條訊息,還沒有消費者消費該佇列,那麼這條訊息將一直存放在佇列中,直到有消費者消費了該條訊息,以此可以保證訊息的可靠...

rabbitmq和redis用作訊息佇列的區別

將redis發布訂閱模式用做訊息佇列和rabbitmq的區別 可靠性 redis 沒有相應的機制保證訊息的可靠消費,如果發布者發布一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中 rabbitmq 具有訊息消費確認機制,如果發布一條訊息,還沒有消費者消費該佇列,那麼這條訊息將一直存...

將redis發布訂閱和rabbitmq的區別

redis 沒有相應的機制保證訊息的可靠消費,如果發布者發布一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中 rabbitmq 具有訊息消費確認機制,如果發布一條訊息,還沒有消費者消費該佇列,那麼這條訊息將一直存放在佇列中,直到有消費者消費了該條訊息,以此可以保證訊息的可靠消費 r...