redis概述。

redis是一款高性能的NoSql系列的非關係型數據庫web

    1什麼是Nosqlredis

        NoSql()NoSql = not only sql) 意思,不單單是sql,是一項全新的數據庫理念,泛指非關係型的數據庫。web2.0純動態網站已經略顯力不存心,暴露了不少難以克服的問題,而非關係型數據庫則因爲自己的特色,獲得了很是迅猛的發展。算法

    Nosql數據庫的產生就是爲了解決大規模集合多重數據種類帶來的挑戰,尤爲是大數據應用的難題。sql

      NoSql和關係型數據庫比較數據庫

          1優勢:  緩存

            1) 成本:nosql數據庫簡單易部署,基本都是開源軟件,不須要像使用oralce那樣話費大量成本去購買使用,相比關係型數據庫價格便宜安全

            2)查詢速度:nosql數據庫將數據存於緩存之中,關係型數據庫將數據存儲於硬盤之中網絡

            3)存儲形式:nosql存儲格式是Key,value形式,文檔形式,圖片形式,因此能夠村吃基礎類型,以及對象或者集合各類格式,而數據庫只支持基礎數據類型。數據結構

            4)擴展性:關係型數據庫有相似於join類型這樣的擴展致使很艱難併發

 

        缺點:

          1)維護工具和資料有限,由於nosql屬於新的技術,不能和關係型數據庫10幾年的技術同日而語

          2)不提供對sql的支持,若是不支持sql這樣的工業標準,將產生用戶必定的學習和使用成本

          3)不提供關係型數據庫對事物的處理

      1.1.2 非關係型數據庫的優點    

          Nosql是基於鍵值對的,數據之間沒有耦合性,所以很是容易水平擴展

      1.1.3關係型數據庫的優點:    

        1)複雜查詢可使用sql語句在一個或者多個表之間進行擴展

        2)事物支持使得對於安全性能很高的數據訪問要求得以實現,對於這兩類數據庫,對方的優點就是本身的劣勢,反之亦然。

  主流的NoSql產品:

      1鍵值對存儲數據庫

          1相關產品 Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

          2典型應用:內容緩存,主要用於處理大量數據的高訪問。

          3數據模型 一系列鍵值對。

      

       2列存儲數據庫
        相關產品:Cassandra, HBase, Riak
        典型應用:分佈式的文件系統
        數據模型:以列簇式存儲,將同一列數據存在一塊兒
        優點:查找速度快,可擴展性強,更容易進行分佈式擴展
        劣勢:功能相對侷限
•      3 文檔型數據庫
        相關產品:CouchDB、MongoDB
        典型應用:Web應用(與Key-Value相似,Value是結構化的)
        數據模型: 一系列鍵值對
        優點:數據結構要求不嚴格
        劣勢: 查詢性能不高,並且缺少統一的查詢語法
•       4圖形(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

 

    1.3命令操做

    redis的數據結構  

      redis數據存儲是key value格式的數據,其中 key都是字符串, value 有5種不一樣的數據結構

      value的數據結構

      1字符串類型 String

      2哈希類型 hash :map 結構

      3列表結構 list : linkedList格式,支持重複元素

      4set:不容許重複元素

      5sortedset,不容許重複元素,切元素有序

    1.4 字符創String

        存儲:  set key value 

        獲取 :get  key:

      哈希類型:hash

       存儲: hset key filed  value

       獲取:hget key field  //獲取指定field對應的值

          hgetall key //獲取全部field和對應的值

       刪除

        hdel key field 刪除指定屬性的值,

    1.5列表類型 list:能夠添加一個元素到列表的頭部或者尾部 該list集合爲linkedlist

      1添加:  

        lpush key value:將元素加入列表的左邊

        rpush key valyue :將元素加入列表的右邊

      2獲取:

      lrange key  start end : 範圍獲取 當end爲-1時,獲取list集合的所有value

      3刪除

      lpop key  刪除list最左邊的元素

      rpop key 刪list除最右邊的元素

    4集合類型 set :不容許重複元素  

      1存儲:sadd key value 

      獲取:smembers key 獲取set集合中是全部元素

      刪除:srem key value 刪除set集合中的某個元素  

    5有序集合類型:sortedset 不容許重複元素,切元素有順序,每隔元素都會關聯一個double類型的分數,redis正是經過分數來爲集合中的元素進行從小到大的排序

      1存儲

        zadd key score  value 

      2獲取

      zrange key start end [withscores]

    3刪除: 

       zrem key value 

  7通用命令

    1  keys * :查詢全部鍵

    2. type key  獲取鍵對應的 value類型

    3 del  key 刪除指定的key value 

相關文章
相關標籤/搜索