日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis pub/sub 聊天

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis pub/sub 聊天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本相關的命令:

SUBSCRIBE channel [channel ...]???????????? 訂閱給定的一個或多個頻道的信息。

PSUBSCRIBE pattern [pattern ...]???????????? 訂閱一個或多個符合給定模式的頻道。? P表示正則式。 與SUBSCRIBE相比, 就是多了個正則式功能、參數可為正則式。



UNSUBSCRIBE [channel [channel ...]]?? ? 指示客戶端退訂給定的頻道。

PUNSUBSCRIBE [pattern [pattern ...]]???? 指示客戶端退訂所有給定模式。????? P含義同上



PUBLISH channel message???????????????????? ? 將信息 message 發送到指定的頻道 channel向頻道發布消息



PUBSUB?????????? 統計信息, 目前支持如下3個子COMMAND
  • PUBSUB CHANNELS [pattern]????????????????????????????????? 列出活躍的channel;? 其中前兩個是特定的關鍵字, patten才是參數
  • PUBSUB NUMSUB [channel-1 ... channel-N]???????? 列出給定channel的訂閱數
  • PUBSUB NUMPAT??????????????????????????????????????????????????????? 所有頻道的訂閱總和



notes, channel不需要創建。 只需要訂閱, 訂閱后, 如果沒有該頻道, 會自動創建, 有就加入; 退訂后,訂閱數減1、到0時就"去掉"頻道。


redis在subscribe/psubscribe之后, 該context就只能接受數據或者再 訂閱/退訂 了。不能發送其他的COMMAND,比如pubsub, publish等。


因此對于一個聊天應用的客戶端而言, 需要兩個context:

--------------? 一個context用于subscribe sometopic, 然后不停等待接受其他人發出的消息(包括“自己”發出的);

--------------? 一個context用于publish? sometopic "words..", 用于發出消息。

將發送和接受分開了。




游戲服務器通常有個Gate服務器負責與客戶端的連接、請求/應答的轉發, Gate再負責與后臺的logic/match/auth等服務器通訊。因此,redis的pub/sub功能并不能直接適用于COC的聊天功能。 原因大概有:

1) COC刪游戲、再下載進入, 或者退出公會再加入公會后, 能得到此前一段時間/固定條數的歷史聊天記錄。? 這和pub/sub的定義沖突:pub只保證發給現在已經sub上的。

2)如上的游戲后端設計,gate需要充當客戶端的代理。 客戶端發送文本給gate,gate作為redis-cli 與redis server通訊; 但一個gate只能充當一個客戶端代理; 除非對redis-server進行改造。??????????? 或者聊天服務不通過gate。

總結

以上是生活随笔為你收集整理的redis pub/sub 聊天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。