kafka和redis queue的區別


存儲介質不同

redis queue數據是存儲在內存,雖然有AOF和RDB的持久化方式,但是還是以內存為主。
kafka是存儲在硬盤上

性能不同

因為存儲介質不同,理論上redis queue的性能要優於kafka,但是在實際使用過程,這塊體驗並不是很明顯,通常只有一些高並發場景下需要用redis queue,比如發紅包,可以先將紅包預先拆解然后push到redis queue,在搶的一瞬間可以很好的支撐並發。

成本不同

kafka存儲在硬盤上,成本會比內存小很多,具體差1,2個數量級是有,在數據量非常大的情況下,使用kafka能夠節省蠻多服務器成本。最常見的有應用產生的日志,這些日志產生的量級一般都很大,如果有需要進行處理,可以使用kafka隊列。

消息可靠

redis存儲在內存中,一旦服務異常或者宕機,數據就會丟失。相對來說kafka存儲在硬盤更加安全。

訂閱機制

這邊也是比較重點,訂閱機制主要有兩點不同:

  1. kafka消費了之后,可以重新消費。redis消費(lpop)了數據之后,數據就從隊列里消失了。kafka里面是偏移量(offset)的概念,可以設置到前面重新消費。
  2. redis只支持單一的消費者,只有topic模式。kafka不光有topic,還支持group分組模式,可以有多個消費組,消費同一個topic的消息。比如應用產生的行為日志,走kafka就很合適,大數據部門可以消費做數據分析,開發部門可以消費做后續的業務邏輯。

 

摘自:http://www.01happy.com/kafka-redis-queue-difference/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM