Redis知識點

  • Redis數據類型:String、List、Set、Sorted Set、Hash
  • Redis淘汰策略
    • 不淘汰數據
    • 任意淘汰數據
    • 最近最少使用的數據淘汰
    • 從已設置過時時間的數據中任意淘汰
    • 從已設置過時時間的數據中,淘汰最近最少使用的數據
    • 從已設置過時時間的數據中,淘汰將要過時的數據
  • 一個字符串類型的值能存儲的最大容量?512M
  • Redis集羣方案
    • Redis cluster模式(3.0自帶集羣)
      主從節點,每一個節點管理一部分槽,一共分爲16384個槽。插入數據時,根據CRC16(KEY) mod 16384的值,決定將key放入哪一個槽中。
    • 哨兵模式
    • codis模式
    • 客戶端本身分片
  • Redis適合的場景
    • 會話緩存
    • 全頁緩存
    • 隊列
    • 排行榜/計數器
    • 發佈/訂閱
  • Redis集羣之間是如何複製的?異步複製
  • Redis集羣最大的節點數是多少?16384
  • Redis中管道用處?redis能夠接收多個請求,而後依次返回全部結果
  • Redis事務
    • 單獨隔離
    • 全部命令序列化、按順序執行
    • 執行過程當中,不會被其餘客戶端發來的命令請求打斷
  • Redis事務相關的命令
    • MULTI、EXEC、DISCARD、WATCH
    • MULTI:標識事務開啓
    • EXEC:事務結束
    • DISCARD:清除事務
    • WATCH:監聽事務
  • Redis key過時時間設置:EXPIRE。永久有效:PERSIST
  • Redis內存優化
    • 儘可能使用hash數據結構
    • 減小key的數量
  • Redis分佈式鎖
    • setnx key val:setnx爭搶鎖
    • expire key timeout:爭到鎖後,設置超時時間
    • delete key:刪除key
  • Redis異步隊列
    • list做爲隊列,lpush生產消息,rpop消費消息
    • 當rpop沒有消息時,適當sleep一會再重試
    • 生產一次消費屢次:使用pub/sub訂閱模式
  • 緩存穿透
    • 大量的惡意請求故意查詢不存在的key,對數據庫形成壓力
    • 避免
      • 對查詢結果爲空的數據也進行緩存,緩存時間設置較短
      • 對必定不存在的key進行過濾。
  • 緩存雪崩
    • 緩存服務器重啓或者在某個時間段,緩存集中失效
    • 避免
      • 不一樣的key設置不一樣的過時時間,熱數據緩存時間長一些,冷數據緩存時間短一些,儘可能分散緩存過時時間
      • 加鎖或者隊列來控制讀數據庫寫緩存的線程數量
相關文章
相關標籤/搜索