为啥互联网都使用缓存
1 高性能
MySQL太久,受不了!
假設一個請求,各種操作MySQL,半天才查出來一個結果,但這結果可能接下來幾個小時都不會再變,或變了也可不用立即返給用戶。
使用緩存!
折騰半天查出來的結果,扔緩存里,一個key對應一個value,下次再有人查,別走MySQL折騰600ms了。
直接從緩存里,通過一個key查出來一個value,2ms搞定。性能提升300倍。
- 即高性能
就是把你一些復雜操作耗時查出來的結果,如果確定后面不咋變了,然后但是馬上還有很多讀請求,那么直接結果放緩存,后面直接讀緩存就好了。
應用場景
某商品信息,在1天之內都不會改變。但是這個商品每次查詢一次要耗費2s , 1天要被瀏覽百萬次
用戶1請求數據1,第一次檢查,發現緩存里沒數據1,從 MySQL 里查詢耗時 800ms,假設數據1在10分鐘之內不再變化
第一次查詢之后放入緩存。如果后續數據1變化,只要系統A修改數據庫的同時,也更新緩存里的值即可。
第二次檢查緩存,緩存里有數據1,直接返回。從緩存里獲取數據1返回給用戶2 ,耗費10ms
假設10分鐘之內有1000個用戶都查詢了同一個數據
10分鐘之內,那1000個用戶,每個人查詢這個數據都感覺很慢, 800ms
假設10分鐘之內數據沒有變化,然后1000個人來查詢這條數據,第一個人是800ms ,后面999個人都是
取數據10ms就可以看到結果
2 高并發
應用場景
查電商里的商品, 3/4的數據放在緩存, 1/4的數據留在數據庫。
在中午高峰期,有100萬用戶同時訪問系統A,每秒有4000個請求去查詢MySQL,其中3000個請求走緩存; 1000個請求走MySQL
- 為什么數據庫支撐不了高并發,緩存卻可支撐高并發呢?
緩存走內存,內存天然可支撐。別說是4000/s , 4萬/s請求也沒問題。
但數據庫一般建議并發請求不要超過2000/s,如果數據承載每秒4000個請求,可能宕機。
3 所以結合上述場景,為啥要用緩存?
一般項目沒啥高并發,就別折騰了,直接高性能場景,就思考有沒有可以緩存結果的復雜查詢場景,后續可以大幅度提升性能,優化用戶體驗。
總結
以上是生活随笔為你收集整理的为啥互联网都使用缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国农业大学计算机专硕2019分数线,中
- 下一篇: MySQL中EXPLAIN解析