分佈式緩存-Redis數據庫

一、什麼是redis?

1、定義:數據庫
2、優勢:

  • 單線程:順序執行,前面的代碼不執行完畢,後面的代碼不會執行。
  • 原子性:一個操作,要麼全部成功,要麼全部失敗
  • 速度快:使用內存存取數據,每秒支持10萬次讀寫
  • 持久性:可以將數據保存在磁盤
  • value支持多種數據類型:
    String:存儲基本的字符串類型
    List:比如消息隊列、粉絲列表
    Set:不重複的集合,交集,並集,差集
    sSet:有序的集合,權重,排行榜
    HashMap:常用來存儲對象類型,例如cookies對象

二、問題

  1. 緩存和數據庫讀寫一致性:有強一致性要求的數據,不能放緩存
  2. 緩存雪崩:緩存同時大面積的失效,這個時候又來了一波請求,結果請求都懟到數據庫上,從而導致數據庫連接異常。
  3. 緩存擊穿:故意去請求緩存中不存在的數據,導致所有的請求都懟到數據庫上,從而數據庫連接異常
  4. 緩存的併發競爭:同時set一個key

三、Redis和本地緩存的對比

  • 本地緩存:只能應用在相應的服務本身,無法共享,而Redis是分佈式的
  • 本地緩存想要用好需要涉及的東西太複雜、內存擴展、緩存過期、併發、多種數據結構類型的支持 3、無法持久化,服務關閉,則緩存失效

四、應用緩存的目的

  • 1、高性能
    一個請求到數據庫中需要大約300ms,而到緩存中只需要3ms
  • 2、高併發
    MySQL單機支持的併發量只有幾千,而Redis緩存可達到十萬左右
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章