NoSQL 資料庫之 Redis 學習總結
1、NoSQL介紹
為了解決高併發、高可用、高可擴充套件,大資料儲存等一系列問題而產生的資料庫解決方案。NoSql,叫非關係型資料庫,它的全名Not only sql。它不能替代關係型資料庫,只能作為關係型資料庫的一個良好補充。
2、NoSQL分類
a> 鍵值(Key-Value)儲存資料庫
相關產品: TokyoCabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容快取,主要用於處理大量資料的高訪問負載。
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
b> 列儲存資料庫
相關產品:Cassandra, HBase,Riak
典型應用:分散式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:查詢速度快,可擴充套件性強,更容易進行分散式擴充套件
劣勢:功能相對侷限
c> 文件型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢:查詢效能不高,而且缺乏統一的查詢語法
d> 圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分散式的叢集方案。
3、Redis
Redis是使用c語言開發的一個高效能鍵值資料庫。Redis可以通過一些鍵值型別來儲存資料。
鍵值型別:
a> String字元型別
b> map雜湊型別
c> list列表型別
d> set集合型別
e> sortedset有序集合型別
4、Redis 應用場景
快取(資料查詢、短連線、新聞內容、商品內容等等)。(最多使用)
分散式叢集架構中的session分離。
任務佇列。(秒殺、搶購、12306等等)
5、Redis 資料型別及應用
a> String字元型別
命令: 主要set get
應用: 商品編號、訂單號採用string的遞增數字特性生成
b> map雜湊型別
命令: 主要Hset 、Hmset、Hget, Hmget
應用: 儲存商品資訊【商品id、商品名稱、商品描述、商品庫存、商品好評】
c> list列表型別
命令:Lpush Rpush等
應用:商品評論列表
d> set集合型別
命令:sadd、srem等
應用:---
e> sortedset有序集合型別
命令:zscore、zrem等
應用:商品銷售排行榜
6、Redis 持久化方案
a> rdb 預設方式
一旦redis非法關閉,那麼會丟失最後一次持久化之後的資料。
b> aof
Redis預設是不使用該方式持久化的。Aof方式的持久化,是操作一次redis資料庫,則將操作的記錄儲存到aof持久化檔案中。
在使用aof和rdb方式時,如果redis重啟,則資料從aof檔案載入。