1. 程式人生 > >NoSQL 資料庫之 Redis 學習總結

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檔案載入。