概述
Redis實作訊息佇列有兩種形式:
- 廣播訂閱模式:基于Redis的 Pub/Sub 機制,一旦有客戶端往某個key里面 publish一個訊息,所有subscribe的客戶端都會觸發事件
- 集群訂閱模式:基于Redis List雙向+ 原子性 + BRPOP
Redis訊息佇列時,當Redis宕機后,訊息可能會丟失(也要看持久化的策略),如果收訊息方未有重發和驗證機制,Redis內的資料會出現丟失,所以,使用Redis的作為訊息佇列,通常是對于訊息的準確性并非特別高的場景,
原理
- 基于Redis的 List的佇列性質:從Left插入元素,從Right Pop元素
- 原子性:避免并發執行緒不安全,比如LPush的時候、BRPOP的時候
- BRPOP:提升性能,保證及時性又降低無效請求的次數,類似于RocketMQ的長輪詢Pull訊息,如果不考慮性能的話,也可直接用RPOP命令
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/122665.html
標籤:PHP
