天天看點

Redis開發與運維. 1.3 Redis使用場景

<b>1.3 redis使用場景</b>

上節我們已經了解了redis的若幹個特性,本節來看一下redis的典型應用場景有哪些?

<b>1.3.1 redis可以做什麼</b>

1.?緩存

緩存機制幾乎在所有的大型網站都有使用,合理地使用緩存不僅可以加快資料的通路速度,而且能夠有效地降低後端資料源的壓力。redis提供了鍵值過期時間設定,并且也提供了靈活控制最大記憶體和記憶體溢出後的淘汰政策。可以這麼說,一個合理的緩存設計能夠為一個網站的穩定保駕護航。第11章将對緩存的設計與使用進行詳細說明。

2.?排行榜系統

排行榜系統幾乎存在于所有的網站,例如按照熱度排名的排行榜,按照釋出時間的排行榜,按照各種複雜次元計算出的排行榜,redis提供了清單和有序集合資料結構,合理地使用這些資料結構可以很友善地建構各種排行榜系統。

3.?計數器應用

計數器在網站中的作用至關重要,例如視訊網站有播放數、電商網站有浏覽數,為了保證資料的實時性,每一次播放和浏覽都要做加1的操作,如果并發量很大對于傳統關系型資料的性能是一種挑戰。redis天然支援計數功能而且計數的性能也非常好,可以說是計數器系統的重要選擇。

4.?社交網絡

贊/踩、粉絲、共同好友/喜好、推送、下拉重新整理等是社交網站的必備功能,由于社交網站通路量通常比較大,而且傳統的關系型資料不太适合儲存這種類型的資料,redis提供的資料結構可以相對比較容易地實作這些功能。

5.?消息隊列系統

消息隊列系統可以說是一個大型網站的必備基礎元件,因為其具有業務解耦、非實時業務削峰等特性。redis提供了釋出訂閱功能和阻塞隊列的功能,雖然和專業的消息隊列比還不夠足夠強大,但是對于一般的消息隊列功能基本可以滿足。

<b>1.3.2 redis不可以做什麼</b>

實際上和任何一門技術一樣,每個技術都有自己的應用場景和邊界,也就是說redis并不是萬金油,有很多适合它解決的問題,但是也有很多不合适它解決的問題。我們可以站在資料規模和資料冷熱的角度來進行分析。

站在資料規模的角度看,資料可以分為大規模資料和小規模資料,我們知道redis的資料是存放在記憶體中的,雖然現在記憶體已經足夠便宜,但是如果資料量非常大,例如每天有幾億的使用者行為資料,使用redis來存儲的話,基本上是個無底洞,經濟成本相當的高。

站在資料冷熱的角度看,資料分為熱資料和冷資料,熱資料通常是指需要頻繁操作的資料,反之為冷資料,例如對于視訊網站來說,視訊基本資訊基本上在各個業務線都是經常要操作的資料,而使用者的觀看記錄不一定是經常需要通路的資料,這裡暫且不讨論兩者資料規模的差異,單純站在資料冷熱的角度上看,視訊資訊屬于熱資料,使用者觀看記錄屬于冷資料。如果将這些冷資料放在redis中,基本上是對于記憶體的一種浪費,但是對于一些熱資料可以放在redis中加速讀寫,也可以減輕後端存儲的負載,可以說是事半功倍。

是以,redis并不是萬金油,相信随着我們對redis的逐漸學習,能夠清楚redis真正的使用場景。

繼續閱讀