kafka與redis的差異:
#1、redis訊息推送(基於分散式pub/sub)多用於即時性較高的訊息推送,並不保證可靠。
其他的mq和kafka保證可靠但有一些延遲(非即時系統沒有保證延遲)。 redis-pub/sub斷電就清空,而使用redis-list作為訊息推播雖然有持久化,但是又太弱智,也並非完全可靠不會丟。
2、redis 發布訂閱除了表示不同的topic 外,並不支援分組,例如kafka中發布一個東西,多個訂閱者可以分組,同一個群組裡只有一個訂閱者會收到該訊息,這樣可以用作負載平衡。
例如,kafka 發佈:topic = "發佈貼文" data="文章1" 這個訊息,後面有一百台伺服器每台伺服器都是一個訂閱者,都訂閱了這個topic,但是他們可能分成三組,A組50台,用來真的做發布文章,A組50台裡所有subscriber 都訂閱了這個topic。
由於在同一組,這則訊息 (topic="發佈貼文", data="文章1")只會被A組裡面一台目前空閒的機器收到。而B組25台伺服器用於統計,C組25台伺服器用於存檔備份,每組只有一台會收到。
用不同的群組來決定每個訊息要抄送多少分去,用同群組內哪些訂閱者忙,哪些訂閱者空閒來決定訊息會被分到哪台伺服器去處理,生產者消費者模型。
redis完全沒有這類機制,這兩點是最大的差別。
更多Redis相關技術文章,請造訪Redis教學欄位進行學習!
以上是kafka與redis的差別有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!