redis 基礎(一) 初步瞭解redis

1緩存相關

1.1緩存穿透

問題:查詢的key再redis中不存在,對應的id在數據庫也不存在。此時被非法用戶進行攻擊,大量的請求會去數據庫(DB)造成宕機,從而影響整個系統。這種現象稱之爲 緩存穿透;

解決方法:緩存redis把空的數據也緩存到redis中,比如空字符串,空對象等;

1.2緩存雪崩

在高併發下,大量緩存key在同一時間失效,大量請求直接落在數據庫上,導致數據庫宕機。

緩存雪崩一般只能緩解,不能杜絕;

解決方式:緩存永不過期、過期時間錯開(避免大量緩存同一時間過期)、多緩存結合(redis、Memcache)【先請求redis,沒有就去Memcache】、採購第三方redis(比如阿里雲)

 

 

2 分佈式架構

  1. 什麼是分佈式架構:
    1.   不同的業務(功能模塊)分散部署在不同的服務器
    2.   每個子系統負責一- 個或者多個不同的業務模塊
    3.   服務之間可以相互交互與通信
  2. 分佈式系統設計對用戶透明
  3. 可以發展爲集羣分佈式系統架構
  4. 舉例單體架構和分佈式架構
  5. 分佈式架構優點:
    1. 業務解耦
    2. 系統模塊化,可重用化
    3. 提升系統併發量
    4. 優化運維部署效率
  6. 分佈式架構缺點:
    1. 架構複雜
    2. 部署多個子系統複雜
    3. 系統之間通信耗時
    4. 新人融入團隊緩慢.
    5. 調試複雜.
  7. 分佈式架構設計原則
    1. 異步解耦
    2. 冪等- -致性
    3. 拆分原則(功能、業務拆分)
    4. 融合分佈式中間件
    5. 容錯高可用

3Nosql

3.1什麼是NoSql

  1. 存值方式: key-value
  2. Not Only Sql
  3. 傳統項目使用純數據庫
  4. 爲互聯網和大數據而生
  5. 水平(橫向)擴展方便高效
  6. 高性能讀取
  7. 高可用
  8. 存數據,做緩存

3.2Nosql常見分類

  1. 鍵值對數據庫:Redis. Memcache
  2. 列存儲數據庫:Hbase. Cassandra
  3. 文檔型數據庫:MongoDB. CouchDB
  4. 圖形數據庫:Neo4J、FlockDB

4分佈式緩存

4.1什麼是分佈式緩存

  1. 提升讀取速度性能
  2. 分佈式計算領域
  3. 爲數據庫降低查詢壓力

4.2什麼是reids

  1. NoSql
  2. 分佈式緩存中間件
  3. key-value存儲
  4. 提供海量數據存儲訪問
  5. 數據存儲在內存裏,讀取更快
  6. 非關係型、分佈式、開源、水平擴展

5分佈式緩存方案對比

5.1Ehcache(適合單應用)

  1. 優點:
    1. 基於java開發
    2. 基於JVM緩存
    3. 簡單、輕巧、方便
  2. 缺點:
    1. 集羣不支持
    2. 分佈式不支持

5.2Memcache

  1. 優點:
    1. 簡單的key-value存儲
    2. 內存使用率比較高
    3. 多核處理,多線程.
  2. 缺點:
    1. 無法容災(重啓後之前數據無法恢復)
    2. 無法持久化

5.3Redis

  1. 優點:
    1. 豐富的數據結構
    2. 持久化.
    3. 主從同步、故障轉移
    4. 內存數據庫
  2. 缺點:
    1. 單線程
    2. 單核

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章