<Redis> 入門一 概念安裝
Redis
概念
redis是一款高效能的NOSQL系列的非關係型資料庫
什麼是NOSQL
NoSQL(NoSQL = Not Only SQL),意即“不僅僅是SQL”,是一項全新的資料庫理念,泛指非關係型的資料庫。
隨著網際網路web2.0網站的興起,傳統的關係資料庫在應付web2.0網站,特別是超大規模和高併發的SNS型別的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。NoSQL資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。
NOSQL和關係型資料庫比較
優點:
1)成本:nosql資料庫簡單易部署,基本都是開源軟體,不需要像使用oracle那樣花費大量成本購買使用,相比關係型資料庫價格便宜。
2)查詢速度:nosql資料庫將資料儲存於快取之中,關係型資料庫將資料儲存在硬碟中,自然查詢速度遠不及nosql資料庫。
3)儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等,所以可以儲存基礎型別以及物件或者是集合等各種格式,而關係型資料庫則只支援基礎型別。
4)擴充套件性:關係型資料庫有類似join這樣的多表查詢機制的限制導致擴充套件很艱難。
缺點
1)維護的工具和資料有限,因為nosql是屬於新的技術,不能和關係型資料庫10幾年的技術同日而語。
2)不提供對sql的支援,如果不支援sql這樣的工業標準,將產生一定使用者的學習和使用成本。
3)不提供關係型資料庫對事務的處理。
非關係型資料庫的優勢:
1)效能NOSQL是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過SQL層的解析,所以效能非常高。
2)可擴充套件性同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。
關係型資料庫的優勢:
1)複雜查詢可以用SQL語句方便的在一個表以及多個表之間做非常複雜的資料查詢。
2)事務支援使得對於安全效能很高的資料訪問要求得以實現。對於這兩類資料庫,對方的優勢就是自己的弱勢,反之亦然。
總結:
關係型資料庫與NoSQL資料庫並非對立而是互補的關係,即通常情況下使用關係型資料庫,在適合使用NoSQL的時候使用NoSQL資料庫,
讓NoSQL資料庫對關係型資料庫的不足進行彌補。
一般會將資料儲存在關係型資料庫中,在nosql資料庫中備份儲存關係型資料庫的資料
主流的NOSQL產品
• 鍵值(Key-Value)儲存資料庫
相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容快取,主要用於處理大量資料的高訪問負載。
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
• 列儲存資料庫
相關產品:Cassandra, HBase, Riak
典型應用:分散式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:查詢速度快,可擴充套件性強,更容易進行分散式擴充套件
劣勢:功能相對侷限
• 文件型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢: 查詢效能不高,而且缺乏統一的查詢語法
• 圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分散式的叢集方案。
什麼是Redis
Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫,官方提供測試資料,50個併發執行100000個請求,讀的速度是110000次/s,寫的速度是81000次/s ,且Redis通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止Redis支援的鍵值資料型別如下:
1) 字串型別 string
2) 雜湊型別 hash
3) 列表型別 list
4) 集合型別 set
5) 有序集合型別 sortedset
redis的應用場景
• 快取(資料查詢、短連線、新聞內容、商品內容等等)
• 聊天室的線上好友列表
• 任務佇列。(秒殺、搶購、12306等等)
• 應用排行榜
• 網站訪問統計
• 資料過期處理(可以精確到毫秒
• 分散式叢集架構中的session分離
安裝
1.下載redis-5.0.3.tar.gz
2.解壓 tar -zxvf redis-5.0.3.tar.gz
3.進入redis目錄,使用make命令
4.完成後使用make test 如果出現 you need tcl 8.5 or... 那麼,yum install tcl就可以
5.make install PREFIX=路徑 安裝完成
安裝完成後開啟,有六個檔案
Redis-server 啟動服務
Redis-cli 訪問到redis的控制檯
redis-benchmark 效能測試的工具
redis-check-aof aof檔案進行檢測的工具
redis-check-rbd rdb檔案檢查工具
redis-sentinel sentinel 伺服器配置
從之前解壓的檔案中,拷貝一份redis.conf到redis目錄下
啟動,需要指定conf路徑
停止
修改為yes後,後臺執行
修改完後,再執行
啟動redis客戶端
遠端連線 將這一行註釋掉
設定密碼 在登入時使用 -a 123456
多資料支援
預設支援16個數據庫;可以理解為一個名稱空間
跟關係型資料庫不一樣的點
- redis不支援自定義資料庫名詞
- 每個資料庫不能單獨設定授權
- 每個資料庫之間並不是完全隔離的。 可以通過flushall命令清空redis例項面的所有資料庫中的資料
通過 select dbid 去選擇不同的資料庫名稱空間 。 dbid的取值範圍預設是0 -15