redis適合什麼場景?
1、快取
快取現在幾乎是所有中大型網站都在使用的必殺技,合理的利用快取不僅能夠提升網站存取速度,還能大幅降低資料庫的壓力。 Redis提供了鍵過期功能,也提供了彈性的鍵淘汰策略,所以,現在Redis用在快取的場合非常多。 (推薦:《Redis影片教學》)
2、排行榜
很多網站都有排行榜應用的,如京東的月度銷售清單、商品按時間的上新排行榜等。 Redis提供的有序集合資料類構能實現各種複雜的排行榜應用。
3、計數器
什麼是計數器,如電商網站商品的瀏覽量、影片網站影片的播放數等。為了確保資料即時效,每次瀏覽都得給 1,並發量高時如果每次都請求資料庫操作無疑是種挑戰和壓力。 Redis提供的incr指令來實現計數器功能,記憶體操作,效能非常好,非常適用於這些計數場景。
4、分散式會話
叢集模式下,在應用不多的情況下一般使用容器自帶的session複製功能就能滿足,當應用程式增多在相對複雜的系統中,一般都會搭建以Redis等記憶體資料庫為中心的session服務,session不再由容器管理,而是由session服務及記憶體資料庫管理。
5、分散式鎖定
在許多網路公司中都使用了分散式技術,分散式技術帶來的技術挑戰是對同一個資源的並發訪問,如全局ID、減庫存、秒殺等場景,並發量不大的場景可以使用數據庫的悲觀鎖、樂觀鎖來實現,但在並發量高的場合中,利用數據庫鎖來控制資源的並發訪問是不太理想的,大大影響了資料庫的效能。可以利用Redis的setnx功能來編寫分散式的鎖,如果設定回傳1說明取得鎖成功,否則取得鎖失敗,實際應用中要考慮的細節要更多。
6、 社群網路
按讚、踩、追蹤/被追蹤、共同好友等是社群網站的基本功能,社群網站的訪問量通常來說比較大,而且傳統的關聯式資料庫類型不適合用來儲存這種類型的數據,Redis提供的雜湊、集合等資料結構能很方便的實現這些功能。
7、最新列表
Redis列表結構,LPUSH可以在列表頭部插入一個內容ID作為關鍵字,LTRIM可用來限制列表的數量,這樣列表永遠為N個ID,無需查詢最新的列表,直接根據ID去到對應的內容頁即可。
8、訊息系統
訊息佇列是大型網站必用中介軟體,如ActiveMQ、RabbitMQ、Kafka等流行的訊息佇列中間件,主要用於業務解耦、流量削峰及非同步處理即時性低的業務。 Redis提供了發布/訂閱及阻塞佇列功能,能實現一個簡單的訊息佇列系統。另外,這個不能和專業的訊息中間件相比。
以上是redis適合什麼場景的詳細內容。更多資訊請關注PHP中文網其他相關文章!