java redis筆記
阿新 • • 發佈:2020-07-17
1. redis
1. 概念
2. 下載安裝
3. 命令操作
1. 資料結構
4. 持久化操作
5. 使用Java客戶端操作redis
Redis
1. 概念: redis是一款高效能的NOSQL系列的非關係型資料庫
1.1.什麼是NOSQL
NoSQL(NoSQL = Not Only SQL),意即“不僅僅是SQL”,是一項全新的資料庫理念,泛指非關係型的資料庫。
隨著網際網路web2.0網站的興起,傳統的關係資料庫在應付web2.0網站,特別是超大規模和高併發的SNS型別的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。NoSQL資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。
1.1.1. NOSQL和關係型資料庫比較
優點:
1)成本:nosql資料庫簡單易部署,基本都是開源軟體,不需要像使用oracle那樣花費大量成本購買使用,相比關係型資料庫價格便宜。
2)查詢速度:nosql資料庫將資料儲存於快取之中,關係型資料庫將資料儲存在硬碟中,自然查詢速度遠不及nosql資料庫。
3)儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等等,所以可以儲存基礎型別以及物件或者是集合等各種格式,而資料庫則只支援基礎型別。
4)擴充套件性:關係型資料庫有類似join這樣的多表查詢機制的限制導致擴充套件很艱難。
缺點:
1)維護的工具和資料有限,因為nosql是屬於新的技術,不能和關係型資料庫10幾年的技術同日而語。
2)不提供對sql的支援,如果不支援sql這樣的工業標準,將產生一定使用者的學習和使用成本。
3)不提供關係型資料庫對事務的處理。
1.1.2. 非關係型資料庫的優勢:
1)效能NOSQL是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過SQL層的解析,所以效能非常高。
2)可擴充套件性同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。
1.1.3. 關係型資料庫的優勢:
1)複雜查詢可以用SQL語句方便的在一個表以及多個表之間做非常複雜的資料查詢。
2)事務支援使得對於安全效能很高的資料訪問要求得以實現。對於這兩類資料庫,對方的優勢就是自己的弱勢,反之亦然。
1.1.4. 總結
關係型資料庫與NoSQL資料庫並非對立而是互補的關係,即通常情況下使用關係型資料庫,在適合使用NoSQL的時候使用NoSQL資料庫,
讓NoSQL資料庫對關係型資料庫的不足進行彌補。
一般會將資料儲存在關係型資料庫中,在nosql資料庫中備份儲存關係型資料庫的資料
1.2.主流的NOSQL產品
• 鍵值(Key-Value)儲存資料庫
相關產品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型應用: 內容快取,主要用於處理大量資料的高訪問負載。
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
• 列儲存資料庫
相關產品:Cassandra, HBase, Riak
典型應用:分散式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:查詢速度快,可擴充套件性強,更容易進行分散式擴充套件
劣勢:功能相對侷限
• 文件型資料庫
相關產品:CouchDB、MongoDB
典型應用:Web應用(與Key-Value類似,Value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢: 查詢效能不高,而且缺乏統一的查詢語法
• 圖形(Graph)資料庫
相關資料庫:Neo4J、InfoGrid、Infinite Graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分散式的叢集方案。
1.3 什麼是Redis
Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫,官方提供測試資料,50個併發執行100000個請求,讀的速度是110000次/s,寫的速度是81000次/s ,且Redis通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止Redis支援的鍵值資料型別如下:
1) 字串型別 string
2) 雜湊型別 hash
3) 列表型別 list
4) 集合型別 set