與Redis的第一次“親密接觸”--使用Redis+SSM搭建簡易聊天室
阿新 • • 發佈:2020-10-11
初衷
最近在寫一個專案的時候,需要編寫一個私信系統,因為之前沒有相關的經驗,所以沒法直接在專案上動工。經過思索後,決定選用Redis作為技術支撐來研究如何實現,因此想到先做一個聊天室來練練手。
完成圖
使用者聊天前需要輸入使用者名稱。
聊天介面將自己發的和別人發的區分開來。
實現思路
群聊和私信系統是有些不同的。
對於私信系統來說,通訊是發生在兩個使用者之間,因此勢必要為每對使用者,甚至是每個使用者建立一個相應的你選擇用來儲存資訊Message
的資料結構(List或其他的)。
而群聊比私信少一點,因為所有的使用者可以共享一個訊息池(Message)。
起初,我考慮使用Redis的釋出訂閱來做,但後來由於種種原因放棄了。因此最後選擇使用Redis的List
開發的難點
在我選定了使用List做儲存這個訊息池的資料結構以後,我就開始思考具體的實現過程,後來發現也是有許多小坑的。
如何確保使用者不漏掉其他使用者發的資訊
在系統執行的過程中,List中的內容是不斷變化的。比如說我當前獲取到了最新的訊息,那麼如果其他使用者互動的很熱烈,我是否會因為一些原因錯過一些訊息呢,顯然,如果設計的不當,一定會錯過,這想來是無法接受的