Redis介紹
什么是Redis?
- Redis是用C語言開發的一個開源的高性能鍵值對(key-value)記憶體資料庫,
- 它提供五種資料型別來存盤值:字串型別、散列型別、串列型別、集合型別、有序集合型別
- 它是一種NoSQL資料庫,
什么是NoSQL?
- NoSQL,即Not-Only SQL(不僅僅是SQL),泛指非關系型的資料庫,
- 什么是關系型資料庫?
資料結構是一種有行有列的資料庫
- NoSQL資料庫是為了解決高并發、高可用、高可擴展、大資料存盤問題而產生的資料庫解決方案,
- NoSQL可以作為關系型資料庫的良好補充,但是不能替代關系型資料庫.
NoSQL資料庫分類
n 鍵值(Key-Value)存盤資料庫
相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容快取,主要用于處理大量資料的高訪問負載,
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 存盤的資料缺少結構化
n 列存盤資料庫
相關產品:Cassandra, HBase, Riak
典型應用:分布式的檔案系統
資料模型:以列簇式存盤,將同一列資料存在一起
優勢:查找速度快,可擴展性強,更容易進行分布式擴展
劣勢:功能相對局限
n 檔案型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢:
n 圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法,
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的集群方案,
Redis歷史發展
- 2008年,意大利的一家創業公司Merzia推出了一款基于MySQL的網站實時統計系統LLOOGG,然而沒過多久該公司的創始人 Salvatore Sanfilippo便 對MySQL的性能感到失望,于是他決定親自為LLOOGG量身定做一個資料庫,并于2009年開發完成,這個資料庫就是Redis,
- 不過Salvatore Sanfilippo并不滿足只將Redis用于LLOOGG這一款產品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo將Redis開源發布
- 并開始和Redis的另一名主要的代碼貢獻者Pieter Noordhuis一起繼續著Redis的開發,直到今天,
- Salvatore Sanfilippo自己也沒有想到,短短的幾年時間,Redis就擁有了龐大的用戶群體,Hacker News在2012年發布了一份資料庫的使用情況調查,結果顯示有近12%的公司在使用Redis,國內如新浪微博、街旁網、知乎網,國外如GitHub、Stack Overflow、Flickr等都是Redis的用戶,
- VMware公司從2010年開始贊助Redis的開發, Salvatore Sanfilippo和Pieter Noordhuis也分別在3月和5月加入VMware,全職開發Redis,
Redis的應用場景
- 記憶體資料庫(登錄資訊、購物車資訊、用戶瀏覽記錄等)
- 快取服務器(商品資料、廣告資料等等),(最多使用)
- 解決分布式集群架構中的session分離問題(session共享),
- 任務佇列,(秒殺、搶購、12306等等)
- 支持發布訂閱的訊息模式
- 應用排行榜,
- 網站訪問統計,
- 資料過期處理(可以精確到毫秒)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52994.html
標籤:C
下一篇:Redis配置
