2020年初,遠程辦公與直播授課成爲國民剛需,騰訊所以免費開放可支持300人同時在線會議的「騰訊會議」。一時之間,這款軟件的用戶呈爆發性增加,據統計,騰訊會議一天就有近較100倍平常的會議數量。程序員
談及此處,咱們不得不佩服騰訊會議平常承接這麼一個高併發容量以後,用戶使用感依然是高清晰流暢無卡頓。咱們都知道,在高併發分佈式的系統中,緩存是必不可少一部分,沒有緩存對系統的加速和阻擋大量的請求直接落到系統的底層,系統是很難撐住高併發的衝擊,因此分佈式系統中緩存的設計是很重要的一環。redis
經常使用的分佈式緩存包括Redis、Memcached和Tair,由於Redis提供的數據結構比較豐富且簡單易用,因此Redis的使用普遍。而騰訊會議中也是應用了Redis技術,因此才能夠知足用戶需求的同時,帶來穩定與擴展。數據庫
爲何分佈式中必定有Redis的存在?它自己又有哪些特性?爲何說它是必不可少的一環?緩存
就像《工做後的程序員,該如何有效提高?》中提到同樣,「若是你以爲以上問題,你已經徹底掌握,接下來思索更高大上一點的技術,如微服務、分佈式、讀寫分離、主從備份、高併發分佈式、集羣、負載均衡等等。」數據結構
高併發分佈式技術是每個通往高級程序員的必備學習技術,而在項目中使用Redis,無非是從兩個角度去考慮:性能與併發。固然,。它還能夠作分佈式鎖等其它一些功能。架構
性能方面,咱們在碰到須要執行耗時特別久,且結果不頻繁變更的SQL,就特別適合將運行結果放入緩存。這樣,後面的請求就去緩存中讀取,使得請求可以迅速響應,並且能夠隨時取消或停止。因此給予用戶絕佳體驗。這也是Redis受歡迎所在。併發
當某個時刻全部用戶同時發出請求,直接訪問數據庫時,在如此高併發狀況下,數據庫會由於負載過量會出現鏈接異常。這時就須要使用redis作一個緩衝操做,讓請求先訪問到redis,而不是直接訪問數據庫,這樣就大大減小數據庫壓力,而不會出現系統崩盤。負載均衡
這也是爲何說分佈式中必定要有redis的存在。它的工做優點來源於它的自身特性。它採用非阻塞I/O多路複用機制,屬於純內存操做和單線程操做,這樣就避免了頻繁的上下文切換,進而達到快的要求。分佈式
固然,你必需要弄懂redis的持久化意義是什麼?redis有時會保存一些較爲重要的數據,若是沒有持久化,redis遇到災難性故障的時候,就會丟失全部的數據,由於redis的數據是加載在內存中的。咱們知道,內存的數據在斷電或者重啓以後,通常是沒有了。因此redis的持久化意義在於故障恢復,它提供持久化,就是爲解決出故障能儘快恢復。ide
學好redis,今後不怕高併發分佈式,走遍天下再也不難。