原文鏈接: rabbitmq和redis用作消息隊(duì)列的區(qū)別 - 劉清政 - 博客園 (cnblogs.com)
可靠性
redis
:沒有相應(yīng)的機(jī)制保證消息的可靠消費(fèi)县袱,如果發(fā)布者發(fā)布一條消息,而沒有對應(yīng)的訂閱者的話插爹,這條消息將丟失酌摇,不會存在內(nèi)存中凌彬; rabbitmq
:具有消息消費(fèi)確認(rèn)機(jī)制变屁,如果發(fā)布一條消息议惰,還沒有消費(fèi)者消費(fèi)該隊(duì)列践惑,那么這條消息將一直存放在隊(duì)列中腹泌,直到有消費(fèi)者消費(fèi)了該條消息,以此可以保證消息的可靠消費(fèi)尔觉;
實(shí)時性
redis
:實(shí)時性高凉袱,redis作為高效的緩存服務(wù)器,所有數(shù)據(jù)都存在在服務(wù)器中侦铜,所以它具有更高的實(shí)時性专甩。
負(fù)載均衡
rabbitmq
隊(duì)列可以被多個消費(fèi)者同時監(jiān)控消費(fèi),但是每一條消息只能被消費(fèi)一次钉稍,由于rabbitmq
的消費(fèi)確認(rèn)機(jī)制涤躲,因此它能夠根據(jù)消費(fèi)者的消費(fèi)能力而調(diào)整它的負(fù)載; redis
發(fā)布訂閱模式贡未,一個隊(duì)列可以被多個消費(fèi)者同時訂閱种樱,當(dāng)有消息到達(dá)時,會將該消息依次發(fā)送給每個訂閱者俊卤;
持久性
redis
:redis
的持久化是針對于整個redis
緩存的內(nèi)容缸托,它有RDB
和AOF
兩種持久化方式(redis
持久化方式,后續(xù)更新)瘾蛋,可以將整個redis
實(shí)例持久化到磁盤俐镐,以此來做數(shù)據(jù)備份,防止異常情況下導(dǎo)致數(shù)據(jù)丟失哺哼。 rabbitmq
:隊(duì)列佩抹,消息都可以選擇性持久化,持久化粒度更小取董,更靈活棍苹;
隊(duì)列監(jiān)控
rabbitmq
實(shí)現(xiàn)了后臺監(jiān)控平臺,可以在該平臺上看到所有創(chuàng)建的隊(duì)列的詳細(xì)情況茵汰,良好的后臺管理平臺可以方面我們更好的使用枢里; redis
沒有所謂的監(jiān)控平臺。
總結(jié)
redis
: 輕量級蹂午,低延遲栏豺,高并發(fā),低可靠性豆胸;rabbitmq
:重量級奥洼,高可靠,異步晚胡,不保證實(shí)時灵奖;rabbitmq
是一個專門的AMQP協(xié)議
隊(duì)列嚼沿,他的優(yōu)勢就在于提供可靠的隊(duì)列服務(wù),并且可做到異步瓷患,而redis
主要是用于緩存的骡尽,redis
的發(fā)布訂閱模塊,可用于實(shí)現(xiàn)及時性擅编,且可靠性低的功能攀细。