RabbitMQ與Redis佇列對比
本文僅針對RabbitMQ與Redis做佇列應用時的情況進行對比
具體採用什麼方式實現,還需要取決於系統的實際需求
簡要介紹
RabbitMQ
RabbitMQ是實現AMQP(高階訊息佇列協議)的訊息中介軟體的一種,最初起源於金融系統,用於在分散式系統中儲存轉發訊息,在易用性、擴充套件性、高可用性等方面表現不俗。訊息中介軟體主要用於元件之間的解耦,訊息的傳送者無需知道訊息使用者的存在,反之亦然。
Redis
是一個Key-Value的NoSQL資料庫,開發維護很活躍,雖然它是一個Key-Value資料庫儲存系統,但它本身支援MQ功能,所以完全可以當做一個輕量級的佇列服務來使用。
具體對比
可靠消費
Redis:沒有相應的機制保證訊息的消費,當消費者消費失敗的時候,訊息體丟失,需要手動處理
RabbitMQ:具有訊息消費確認,即使消費者消費失敗,也會自動使訊息體返回原佇列,同時可全程持久化,保證訊息體被正確消費
可靠釋出
Reids:不提供,需自行實現
RabbitMQ:具有釋出確認功能,保證訊息被髮布到伺服器
高可用
Redis:採用主從模式,讀寫分離,但是故障轉移還沒有非常完善的官方解決方案
RabbitMQ:叢集採用磁碟、記憶體節點,任意單點故障都不會影響整個佇列的操作
持久化
Redis:將整個Redis例項持久化到磁碟
RabbitMQ:佇列,訊息,都可以選擇是否持久化
消費者負載均衡
Redis:不提供,需自行實現
RabbitMQ:根據消費者情況,進行訊息的均衡分發
佇列監控
Redis:不提供,需自行實現
RabbitMQ:後臺可以監控某個佇列的所有資訊,(記憶體,磁碟,消費者,生產者,速率等)
流量控制
Redis:不提供,需自行實現
RabbitMQ:伺服器過載的情況,對生產者速率會進行限制,保證服務可靠性
出入隊效能
對於RabbitMQ和Redis的入隊和出隊操作,各執行100萬次,每10萬次記錄一次執行時間。
測試資料分為128Bytes、512Bytes、1K和10K四個不同大小的資料。
注:此資料來源於網際網路,部分資料有誤,已修正
應用場景分析
Redis:輕量級,高併發,延遲敏感
即時資料分析、秒殺計數器、快取等
RabbitMQ:重量級,高併發,非同步
批量資料非同步處理、並行任務序列化,高負載任務的負載均衡等
參考文章:
相關推薦
RabbitMQ與Redis佇列對比
本文僅針對RabbitMQ與Redis做佇列應用時的情況進行對比具體採用什麼方式實現,還需要取決於系統的實際需求 簡要介紹 RabbitMQ RabbitMQ是實現AMQP(高階訊息佇列協議)的訊息中介軟體的一種,最初起源於金融系統,用於在分散式系統中儲存轉發訊息,在易用性、擴充套件性、高可用性等方
SSDB 與 Redis命令對比
一、 【SSDB介紹】 一個高效能的支援豐富資料結構的 NoSQL 資料庫, 用於替代 Redis.(源自官方) 特性(源自官方) 替代 Redis 資料庫, Redis 的 100 倍容量 LevelDB 網路支援, 使用 C/C++ 開發 Redis AP
php apc快取以及與redis的對比
APC簡介 APC的全稱為Alternative PHP Cache, 是一款開源的php外掛,用來對php的程式碼或者使用者資料進行快取。 APC 對php程式碼的快取 apc可以去掉php動態解析以及編譯的時間,php指令碼可以執行的更快。下面這張圖很好的說明
RabbitMQ與Kafka選型對比
背景 本公司是.Net專案,在.Net可選的MQ比較少,主要Kafka和RabbitMQ,RabbitMQ我也是使用多年了,最近的Kafka廣告與流行度我也是無法無視,因此也是花了點時間收集了資料做了些對比。 此外有個小插曲,當我形成了文件讓老闆兼CTO對比決策後,他打算上阿里雲買MQ服務。我當時給他
Redis與RabbitMQ作為訊息佇列的對比
RabbitMQ RabbitMQ是實現AMQP(高階訊息佇列協議)的訊息中介軟體的一種,最初起源於金融系統,用於在分散式系統中儲存轉發訊息,在易用性、擴充套件性、高可用性等方面表現不俗。訊息中介軟體主要用於元件之間的解耦,訊息的傳送者無需知道
Redis與RabbitMQ作為訊息佇列的比較
本文僅針對RabbitMQ與Redis做佇列應用時的情況進行對比 具體採用什麼方式實現,還需要取決於系統的實際需求 簡要介紹 RabbitMQ RabbitMQ是實現AMQP(高階訊息佇列協議)的訊息中介軟體的一種,最初起源於金融系統,用於在分散式系統中儲存轉發訊
訊息佇列效能對比——ActiveMQ、RabbitMQ與ZeroMQ(譯文)
Dissecting Message Queues 概述: 我花了一些時間解剖各種庫執行分散式訊息。在這個分析中,我看了幾個不同的方面,包括API特性,易於部署和維護,以及效能質量.。訊息佇列已經被分為兩組:brokerless和brokered。 brok
RabbitMQ、Redis、ZeroMQ、ActiveMQ、Kafka/Jafka對比
特性 bytes key cer 記錄 rabbitmq consumer apache target RabbitMQRabbitMQ是使用Erlang編寫的一個開源的消息隊列,本身支持很多的協議:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量級
【Spring Boot學習總結】14.Spring Boot整合Redis-與傳統方式對比
前面我們講解了如何使用Spring Boot來控制事務,下面我們來講解一下如何使用Spring Boot來整合Redis 為了對比傳統工程與Spring Boot整合的不同,以及彰顯Spring Boot整合的優勢,我們會逐一剖析傳統整合方式與Spring Boot整合方式。 一、傳統方式整
RabbitMQ(訊息佇列)叢集配置與使用篇
介紹 MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入佇列的訊息(針對應用程式的資料)來通訊,而無需專用連線來連結它們。訊息傳遞指的是程式之間通過在訊息中傳送資料進行通訊,而不是通過直接呼叫彼此來通訊,直接呼叫通常是用於諸如遠端過程呼叫的
rabbitmq和redis用作訊息佇列的區別
將redis釋出訂閱模式用做訊息佇列和rabbitmq的區別: 可靠性 redis :沒有相應的機制保證訊息的可靠消費,如果釋出者釋出一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中;rabbitmq:具有訊息消費確認機制,如果釋出一條訊息,還沒有消費者消費該佇
redis 訊息釋出訂閱與訊息佇列
redis可以實現訊息的釋出訂閱,可以用作java中的訂閱釋出模式 純粹redis的釋出訂閱 redis客戶端1中使用命令 SUBSCRIBE talk 可以訂閱通道 talk上的訊息 redis客戶端2中也同樣執行這個命令一起訂閱通道 talk redis客
RabbitMQ 之Hello World 與 工作佇列 (一)
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <vers
RabbitMQ入門與訊息佇列模式詳解
1.RabbitMQ概述 簡介 MQ全稱為Message Queue,訊息佇列是應用程式和應用程式之間的通訊方法; RabbitMQ是開源的,實現了AMQP協議的,採用Erlang(面向併發程式語言)編寫的,可複用的企業級訊息系統; AMQP(高階訊息佇列協議)是一個非
Redis分散式部署,一致性hash;分散式與快取佇列
最近研究redis-cluster,正好搭建了一個環境,遇到了很多坑,系統的總結下,等到redis3 release出來後,換掉memCache 叢集. 轉載請註明出處哈:http://hot66hot.iteye.com/admin/blogs/2050676 一:關於redis cluster 1
Redis實現分散式鎖與任務佇列的思路
一, 實現思路 1.Redis實現分散式鎖思路 思路很簡單,主要用到的redis函式是setnx(),這個應該是實現分散式鎖最主要的函式。首先是將某一任務標識名(這裡用Lock:order作為標識名的例子)作為鍵存到redis裡,併為其設個過期時間,如果是還有Lock:order請求過來,先
訊息佇列RabbitMQ與Spring整合
1.RabbitMQ簡介 RabbitMQ是流行的開源訊息佇列系統,用erlang語言開發。RabbitMQ是AMQP(高階訊息佇列協議)的標準實現。 官網:http://www.rabbitmq.com/ 2.Spring整合RabbitM
RabbitMQ高階特性-消費端ACK與重回佇列
消費端ACK與重回佇列 消費端ACK 消費端的手工ACK和NACK, ACK是確認成功消費, NACK表示訊息處理失敗, 會重發訊息 消費端進行消費的時候, 如果由於業務異常我們可以進行日誌的記錄, 然後進行補償 如果由於伺服器宕機等嚴重問題, 就需要手工進行
斐波那契堆 插入、 Extract-Min(查詢+刪除)效率與 STL優先佇列對比
插入 n個隨機資料,取m次最小值並pop掉 n=10000000(一千萬),m=0 (純插入,一個o1,一個logn) fib:耗時8377ms stl:耗時5086ms n = 5000000(五百萬), m=20000(2萬) fib:耗時4945ms stl
HBase、MongoDB、MySQL、Oracle、Redis--nosql資料庫與關係資料庫對比
HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis,三大主流開源 NoSQL 資料庫的 PK 兩大主流傳統 SQL 資料庫 類別 HBase MongoDB MySQL Oracle Redis 描述 基於 Ap