Redis入門系列之一: 初識Redis

 

1.1 什麼是NoSql

   爲了解決高併發、高可擴展、高可用、大數據存儲問題而產生的數據庫解決方案,就是NoSql數據庫。redis

        NoSQL,泛指非關係型的數據庫,NoSQLNot-Only SQL,它能夠做爲關係型數據庫的良好補充。算法

1.2 Nosql數據庫分類

  1. 鍵值(Key-Value)存儲數據庫

  相關產品: Tokyo Cabinet/TyrantRedisVoldemortBerkeley DBsql

  典型應用: 內容緩存,主要用於處理大量數據的高訪問負載。 數據庫

  數據模型: 一系列鍵值對緩存

  優點: 快速查詢網絡

  劣勢: 存儲的數據缺乏結構化session

 

         2. 列存儲數據庫數據結構

     相關產品:Cassandra, HBase, Riak架構

     典型應用:分佈式的文件系統併發

     數據模型:以列簇式存儲,將同一列數據存在一塊兒

     優點:查找速度快,可擴展性強,更容易進行分佈式擴展

      劣勢:功能相對侷限

 3. 文檔型數據庫

  相關產品:CouchDBMongoDB

  典型應用:Web應用(與Key-Value相似,Value是結構化的)

  數據模型: 一系列鍵值對

     優點:數據結構要求不嚴格

     劣勢: 查詢性能不高,並且缺少統一的查詢語法

  4. 圖形(Graph)數據庫

  相關數據庫:Neo4JInfoGridInfinite Graph

      典型應用:社交網絡

      數據模型:圖結構

      優點:利用圖結構相關算法。

            劣勢:須要對整個圖作計算才能得出結果,不容易作分佈式的集羣方案。

 

1.3 什麼是Redis

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

字符串類型

散列類型

列表類型

集合類型

有序集合類型。

1.4 redis歷史發展

        2008年,意大利的一家創業公司Merzia推出了一款基於MySQL的網站實時統計系統LLOOGG,然而沒過多久該公司的創始人 Salvatore Sanfilippo便 對MySQL的性能感到失望,因而他決定親自爲LLOOGG量身定作一個數據庫,並於2009年開發完成,這個數據庫就是Redis。 不過Salvatore Sanfilippo並不知足只將Redis用於LLOOGG這一款產品,而是但願更多的人使用它,因而在同一年Salvatore SanfilippoRedis開源發佈,並開始和Redis的另外一名主要的代碼貢獻者Pieter Noordhuis一塊兒繼續着Redis的開發,直到今天。

Salvatore Sanfilippo本身也沒有想到,短短的幾年時間,Redis就擁有了龐大的用戶羣體。Hacker News2012年發佈了一份數據庫的使用狀況調查,結果顯示有近12%的公司在使用Redis。國內如新浪微博、街旁網、知乎網,國外如GitHubStack OverflowFlickr等都是Redis的用戶。

VMware公司從2010年開始贊助Redis的開發, Salvatore SanfilippoPieter Noordhuis也分別在3月和5月加入VMware,全職開發Redis

 

1.5 redis的應用場景

  1. 緩存(數據查詢、短鏈接、新聞內容、商品內容等等)。(最多使用)
  2. 分佈式集羣架構中的session分離。
  3. 聊天室的在線好友列表。
  4. 任務隊列。(秒殺、搶購、12306等等)
  5. 應用排行榜。
  6. 網站訪問統計。
  7. 數據過時處理(能夠精確到毫秒)
相關文章
相關標籤/搜索