快取1 0 為什麼使用快取

2022-07-04 08:48:14 字數 746 閱讀 2701

為什麼使用快取?

用快取,主要有兩個用途:高效能高併發

【高效能】

假設這麼個場景,你有個操作,乙個請求過來,吭哧吭哧你各種亂七八糟操作 mysql,半天查出來乙個結果,耗時 600ms。但是這個結果可能接下來幾個小時都不會變了,或者變了也可以不用立即反饋給使用者。那麼此時咋辦?

快取啊,折騰 600ms 查出來的結果,扔快取裡,乙個 key 對應乙個 value,下次再有人查,別走 mysql 折騰 600ms 了,直接從快取裡,通過乙個 key 查出來乙個 value,2ms 搞定。效能提公升 300 倍。

就是說對於一些需要複雜操作耗時查出來的結果,且確定後面不怎麼變化,但是有很多讀請求,那麼結果直接放在快取,後面直接讀快取就好。

【高併發】

mysql 這麼重的資料庫,壓根兒設計不是讓你玩兒高併發的,雖然也可以玩兒,但是天然支援不好。mysql 單機支撐到2000qps也開始容易報警了。

所以要是你有個系統,高峰期一秒鐘過來的請求有 1萬,那乙個 mysql 單機絕對會死掉。你這個時候就只能上快取,把很多資料放快取,別放 mysql。快取功能簡單,說白了就是 key-value 式操作,單機支撐的併發量輕鬆一秒幾萬十幾萬,支撐高併發 so easy。單機承載併發量是 mysql 單機的幾十倍。

快取是走記憶體的,記憶體天然就支撐高併發。

為什麼選擇Redis快取?

為了追求極致的產品體驗,網際網路企業架構的高效能和高可用便不可避免。而在資料庫層面,一般有以下幾種優化 1.主從配置 比如為mysql服務配置主從,則一台宕機,另一台頂上,達到高可用的要求。2.讀寫分離 配置一主多從,將讀取請求分發到從伺服器上,可以有效的提高響應速度。3.分庫分表 當資料量不斷增加...

快取(五) 為什麼選擇redis

redis是乙個開源的使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api redis 是tcp socket 網路環境,client 發包到 redis,報文格式是resp,非常短小精悍的乙個報文體系,而在服務端redis 是單執行緒...

什麼是快取穿透 快取雪崩 快取擊穿

快取穿透是指查詢乙個一定不存在的資料時,由於在快取中沒有這個key,這時會到db中去查詢,可是db中也沒有這條資料,這時也無法寫入快取,這就造成了快取穿透,如果這時有人利用這個漏洞頻繁攻擊應用,db就可能掛掉了 解決方案 可以把key存入快取中,value設定為空,過期時間最多不超過5分鐘 快取雪崩...