1,緩存
緩存現在是幾乎所有中大型網站都使用的必備技能。合理使用緩存不僅可以提高網站的訪問速度,還可以大大減輕數據庫的壓力。Redis提供了密鑰過期功能和靈活的密鑰消除策略,所以現在很多場合都使用Redis進行緩存。(推薦:Redis視頻教程)
2、排行榜
很多網站都有排名的應用,比如京東。COM的月度銷售排行榜,按時間排列的商品新排名等等。Redis提供的有序集數據類可以實現各種復雜的排行榜應用。
3.計數器
什麽是計數器,比如電商網站的商品瀏覽量,視頻網站的視頻播放量。為了保證數據的實時效率,每次瀏覽都要給+1。每次在並發高的時候請求數據庫操作,無疑是壹種挑戰和壓力。Redis提供的incr命令實現了計數器功能,內存操作,性能非常好,非常適合這些計數場景。
4.分布式會話
在集群模式下,應用不多時,壹般使用容器的會話復制功能就足夠了。當相對復雜的系統中應用增多時,壹般會建立以Redis等內存數據庫為中心的會話服務,會話不再由容器管理,而是由會話服務和內存數據庫管理。
5.分布式鎖
許多互聯網公司都使用分布式技術。分布式技術帶來的技術挑戰是對同壹資源的並發訪問,比如全局ID、庫存減少、秒殺等場景。小並發的場景可以通過數據庫的悲觀鎖和樂觀鎖來實現。然而,在高並發的情況下,使用數據庫鎖來控制資源的並發訪問並不理想,這極大地影響了數據庫的性能。可以使用Redis的setnx函數來寫分布式鎖。如果設置返回1,則鎖獲取成功,否則鎖獲取失敗,實際應用中要考慮更多細節。
6.社交網絡
喜歡、踩、關註/被關註、分享好友是社交網站的基本功能。壹般來說,社交網站的訪問量比較大,傳統的關系型數據庫類型不適合存儲這類數據。Redis提供的hash、collection等數據結構很容易實現這些功能。
7.最新名單
Redis列表結構,LPUSH可以在列表頭部插入壹個內容ID作為關鍵字,LTRIM可以用來限制列表的數量,這樣列表就會壹直有N個ID,妳也不需要查詢最新的列表,只需要根據ID去對應的內容頁面即可。
8.消息系統
消息隊列是大型網站必備的中間件,如ActiveMQ、RabbitMQ、Kafka等流行的消息隊列中間件,主要用於業務解耦、流量削峰和低實時業務的異步處理。Redis提供了發布/訂閱和隊列阻塞功能,可以實現壹個簡單的消息隊列系統。另外,這是專業的消息中間件不能比的。