標籤:add rap 需求 技術分享 字串類型 linux 解壓 相對 ase
1.介紹NoSQL
NoSQL(Not Only SQL):不僅僅是SQL,是一項全新的資料庫理念,泛指非關係型資料庫,原來我們所使用的MySQL、Oracle、Microsoft SQL Server等都是關係行資料庫。那麼我們為什麼需要NoSQL呢?隨著互連網web2.0網站興起,非關係型資料庫發展迅速,傳統的關係型資料庫應付 web2.0 網站,特別是超大規模和高並發的 SNS 類型的 web2.0 動態網站已經力不從心,尤其是對資料庫高並發讀寫的需求、對海量資料庫的高效率儲存和訪問的需求、對資料庫的高可擴充和高可用性的需求大大增加,使得NoSQL成為互連網的新寵兒~
1.1主流NoSQL產品
Tolyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB、Cassandra、HBase、Riak、CounchDB、MongoDB、Neo4J、InfoGrid、Infinite Graph
- 索引值(key-value)儲存資料庫
- 相關產品:Tolyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
- 典型應用:內容緩衝,主要用於處理大量資料的高訪問負載
- 資料模型:一系列索引值對
- 優勢:快速查詢
- 劣勢:儲存的資料缺少結構化
- 列儲存資料庫
- 相關產品:Cassandra、HBase、Riak
- 典型應用:分布式的檔案系統
- 資料模型:以列簇式儲存,將同一列資料存在一起
- 優勢:尋找速度快,可擴充性強,更容易進行分布式擴充
- 劣勢:功能相對局限
- 文檔型資料庫
- 相關產品:CounchDB、MongoDB
- 典型應用:Web應用
- 資料模型:一系列索引值對
- 優勢:資料結構要求不嚴格
- 劣勢:查詢效能不高,而且缺乏統一的查詢文法
- 圖形資料庫
- 相關資料庫:Neo4J、InfoGrid、Infinite Graph
- 典型應用:社交網路
- 資料模型:圖結構
- 優勢:利用圖結構相關演算法
- 劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的叢集方案
1.2NoSQL特點
1.易擴充
- NoSQL資料庫種類繁多,但是一個共同特點都是去掉關聯式資料庫的關係型特點。資料之間沒有關係,也就無形中在架構層面上帶來了可擴充的能力
2.大資料量,高效能
- NoSQL資料庫都具有非常高的讀寫效能,尤其是在大資料量下,同樣表現優秀。得益於它的無關性,資料庫的結構簡單
3.靈活的資料模型
- NoSQL 無需事先為儲存的資料建立欄位,隨時可以儲存自訂的資料格式。而在關聯式資料庫裡,增刪欄位是一件非常麻煩的事情。如果非常大資料量的表,增加欄位簡直就是一個噩夢。
4.高可用
- NoSQL 在不太影響效能的情況,就可以方便的實現高可用的架構。比如 Cassandra,HBase模型,通過複製模型也能實現高可用
2.什麼是Redis
Redis 是用C語言開發的一個開源的高效能的索引值對(key-value)資料庫,因為是C語言開發所以需要在 Linux 下使用 gcc 來編譯本次講解操作都在 Linux下 因為在 Windows操作下不能保證很高的效能,目前 Redis 支援的索引值資料類型如下:
- 字串類型
- 散列類型
- 清單類型
- 集合類型
- 有序集合類型
這裡不在介紹 Redis 的安裝過程 大致過程需要搭建虛擬機器環境,安裝 Linux 系統,通過 SSH 將安裝包傳輸進去 ,在進行解壓,使用 make 命令進行編譯 ,使用make PREFIX=/安裝路徑 /redis install 進行安裝 因為直接 /安裝路徑/redis/bin/redis-server 啟動執行程式會在前台,我們可以copy設定檔 redis.conf 到你/安裝路徑/redis下,修改 redis.conf 設定檔 daemonize 修改為 yes 就可變成後端啟動
2.1Redis使用說明
- 使用後端模式啟動
- Redis -> ./bin/redis-server redis.conf
- 查看 Redis連接埠預設6379
- 強制Redis 停止
- 正常停止
- cd /安裝路徑/redis
- ./bin/redis-cli shutdown
- 串連用戶端
- 輸入資料 set username haha
- 輸出資料 get username
- 刪除資料 del username
- 查看當前庫中所有 key 值 keys *
NoSQL&Redis