作者的原文鏈接:http://huoding.com/2012/02/29/146
redis初學者,輕噴,下麵可能很多錯誤,是我的大致理解:
他首先創建一個需要收到消息的用戶的隊列
再創建了一個有消息重要等級消息隊列
然後創建了一個用戶id和消息id關聯的隊列
然後他用redis命令行做演示:
首先創建了一個消息的hash表
然後創建了類似於上麵的用戶id和消息id關聯的集合
最後通過SORT模擬關聯查詢渠道消息內容
但是這些內容我用PHP數組 mysql也能實現啊?
為什麼要用redis呢?
到底優勢在哪裏呢?
為什麼redis適合於這樣的場景呢?
消息發送完畢之後又如何做持久化存儲呢?
說明的越詳細越好,謝謝了。
你用MYSQL當然也可以實現,但是
1.資料操作上,redis(應該是NOSQL)就是比常規的MYSQL快。因為MYSQL處理資料要經過很多過程,像是SQL解析等等
2.redis支援多種資料結構,例如文中提到的有序集zSet,列表list.一個軟體原生就提供了,你不用自己去實現這些資料結構,節約你的時間。
3.Redis本身支援持久化存儲,如果擔心遺失,那就備份一個到MYSQL裡.
4...其他的自己慢慢體會,最好邊用邊琢磨
資料庫的選擇要和你的需求掛鉤,如果你的消息推送每條就幾百幾千條,用redis的優勢的確看不到,但如果推送消息數到了百萬級、千萬級時,redis的優勢就會很明顯。
同樣是排序,冒泡和快排的差距是如何體現出來的呢?演算法和資料結構在輸入規模很大的情況下,其意義就會反映出來了。
關於redis的一切,就去google吧