進階-Redis 知識梳理

redis介紹

一、什麼是NoSQLredis

  NoSQL(統稱),泛指非關係型的數據庫,NoSQL即Not-Only SQL,它能夠做爲關係型數據庫的良好補充。算法

 

二、NoSQL數據庫的四大分類以下:數據庫

  鍵值(Key-Value)存儲數據庫
  相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
  典型應用: 內容緩存,主要用於處理大量數據的高訪問負載。
  數據模型: 一系列鍵值對
  優點: 快速查詢
  劣勢: 存儲的數據缺乏結構化緩存

  列存儲數據庫
  相關產品:Cassandra, HBase, Riak
  典型應用:分佈式的文件系統
  數據模型:以列簇式存儲,將同一列數據存在一塊兒
  優點:查找速度快,可擴展性強,更容易進行分佈式擴展
  劣勢:功能相對侷限
  文檔型數據庫服務器


  相關產品:CouchDB、MongoDB
  典型應用:Web應用(與Key-Value相似,Value是結構化的)
  數據模型: 一系列鍵值對
  優點:數據結構要求不嚴格
  劣勢: 查詢性能不高,並且缺少統一的查詢語法網絡


  圖形(Graph)數據庫
  相關數據庫:Neo4J、InfoGrid、Infinite Graph
  典型應用:社交網絡
  數據模型:圖結構
  優點:利用圖結構相關算法。
  劣勢:須要對整個圖作計算才能得出結果,不容易作分佈式的集羣方案。session

 

三、什麼是redis數據結構

  redis是將數據存放到內存中,因爲內容存取速度快因此redis被普遍應用在互聯網項目中,
  redis有點:存取速度快,官方稱讀取速度會達到30萬次每秒,寫速度在10萬次每秒最有,具體限制於硬件.
  缺點:對持久化支持不夠良好,
  因此redis通常不做爲數據的主數據庫存儲,通常配合傳統的關係型數據庫使用.併發

  Redis是用C語言開發的一個開源的高性能鍵值對(key-value)數據庫。它經過提供多種鍵值數據類型來適應不一樣場景下的存儲需求,分佈式

  目前爲止Redis支持的鍵值數據類型以下:

  字符串類型(String)
  散列類型(Hash)  redis中使用的是雙向循環鏈表來實現的list,在redis中更像棧
  列表類型(List)  通常應用於將redis做爲分佈式緩存,存儲數據庫中的數據對象
  集合類型(Set)  set中數據是無序的而且不容許重複
  有序集合類型。(zset)   redis會根據分數自動排序,這裏可使用在學生成績排序,
或者是手機應用商店流行軟件排名等需求中

 

四、redis的應用場景

  1)、適合高併發、數據量大的狀況下

  2)、分佈式緩存

  3)、分佈式session

 

五、Redis 持久化 

  rdb:能夠設置間隔多長時間保存一次(Redis不用任何配置默認的持久化方案,在redis同目錄下會產生個後綴名(rdb)的文件,持久化數據就放到該文件中)
    優勢:讓redis的數據存取速度變快
    缺點:服務器斷電時會丟失部分數據(數據的完整性得不到保證)


  aof:能夠設置實時保存(和rdb同樣,持久化數據放到該後綴(aof)文件中)
    優勢:持久化良好,能包裝數據的完整性
    缺點:大大下降了redis系統的存取速度

 

六、主從複製

  一、從服務器和主服務器 互相認識對方 主服務器 知道 誰是個人從服務器

  二、而後主服務器將rdb該文件發送到從服務器中 

    1)、當主從服務器互相都知曉的時候,

      從服務器會一直不間斷的對主服務器發ping命令(意思就是問主服務器你還活着嗎?)

        主服務器會回覆pang命令(意思:我還活着)

        當從服務器發送ping命令 主服務器沒任何反應的時候 那麼證實主服務器掛了 從服務器上位

      從服務器上位以後 不允許進行CRUD操做 那樣會致使數據的不一樣步

  三、當主服務器進行CRUD操做,將該命令發送到從服務器中,從服務器執行一樣命令 

相關文章
相關標籤/搜索