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