1. 程式人生 > >NoSQL&Redis

NoSQL&Redis

高性能 tyrant 有序集合類型 存儲 link over 有關 edi 都是

技術分享圖片

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
    • ps -ef | grep -i redis
  • 強制Redis 停止
    • kill -9 端口號
  • 正常停止
    • cd /安裝路徑/redis
    • ./bin/redis-cli shutdown
  • 連接客戶端
    • ./bin/redis-cli
  • 輸入數據 set username haha
  • 輸出數據 get username
  • 刪除數據 del username
  • 查看當前庫中所有 key 值 keys *

NoSQL&Redis