redis系列html
redis的發佈訂閱功能java
redis消息隊列web
redis的pipelineredis
redis的scan操做segmentfault
本文主要簡述redis做爲消息隊列的利弊和場景。分佈式
傳送模型(發佈訂閱or點對點
)
是基於topic的發佈訂閱仍是點對點模型.net
接收模型(推or拉
)
消息是由生產者推仍是由消費者拉code
at-most-once(消息丟失
)
消息被投遞0或者1次,消息可能被丟失htm
at-least-once(消息重複
)
消息可能被投遞屢次,直到收到ack,會形成消息重複。像rabbitmq開啓消息持久化及ack機制,能夠保證此投遞策略,確保消息投遞成功,但可能形成消息重複。中間件
exactly-once(消息僅且投遞一次
)
消息經過事務等機制保證對方能成功接收,並且不會重複接收
消費者是否能夠接收離線時的消息
消息是否支持優先級
消息是否能夠重複消費
傳送模型 | 接收模型 | 投遞模型 | 持久化 | 優先級 | 回溯 |
---|---|---|---|---|---|
發佈訂閱 | 推 | at-most-once | 否 | 須要本身支持 | 否 |
點對點模式須要本身經過list的lpush和brpop來模擬實現。
優先級隊列能夠用zset來實現