關係型資料庫與nosql資料庫並非對立而是互補的關係,即通常情況下使用關係型資料庫,在適合使用nosql的時候使用nosql資料庫,
讓nosql資料庫對關係型資料庫的不足進行彌補。
一般會將資料儲存在關係型資料庫中,在nosql資料庫中備份儲存關係型資料庫的資料
相關產品: tokyo cabinet/tyrant、redis、voldemort、berkeley db
典型應用: 內容快取,主要用於處理大量資料的高訪問負載。
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
## 列儲存資料庫
相關產品:cassandra, hbase, riak
典型應用:分布式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:查詢速度快,可擴充套件性強,更容易進行分布式擴充套件
劣勢:功能相對侷限
相關產品:couchdb、mongodb
典型應用:web應用(與key-value類似,value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢: 查詢效能不高,而且缺乏統一的查詢語法
## 圖形(graph)資料庫
相關資料庫:neo4j、infogrid、infinite graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的集群方案。
## 概念
刪除列表最左邊的元素,並將元素返回:lpop key刪除列表最右邊的元素,並將元素返回:rpop key
儲存:zadd key score value獲取:zrange key start end [withscores]刪除:zrem key value
使用命令列,重新啟動redis伺服器,並指定配置檔案名稱
取值
使用命令列,重新啟動redis伺服器,並指定配置檔案名稱
使用
// 獲取連線
jedis jedis =
newjedis
("localhost"
,6379);
// 操作
jedis.
set(
"username"
,"zhangsan");
// 關閉連線
jedis.
close()
;
@test
/* 操作字串string */
public
void
test02()
@test
/* 操作hash */
public
void
test03()
// 關閉連線
jedis.
close()
;}
@test
/* 操作list(允許重複) */
public
void
test04()
@test
/* 操作set(不允許重複) */
public
void
test05()
@test
/* 操作sortedset(不允許重複,有序) */
public
void
test06()
// 建立連線池配置物件
jedispoolconfig jedispoolconfig =
newjedispoolconfig()
;// 設定配置
jedispoolconfig.
setmaxtotal(50
);jedispoolconfig.
setmaxidle(10
);// 建立連線池物件,並傳入連線池配置物件
jedispool jedispool =
newjedispool
(jedispoolconfig,
"localhost"
,6379);
// 獲取連線
jedis resource = jedispool.
getresource()
;// 使用
resource.
set(
"name"
,"cat");
string s = resource.
get(
"name");
system.out.
println
(s);
// 關閉,歸還到連線池中
resource.
close()
;
設定 jedispoolutil工具類
public
class
jedispoolutil
catch
(ioexception e)
// 建立連線池配置檔案物件
jedispoolconfig config =
newjedispoolconfig()
;// 設定
config.
setmaxtotal
(integer.
parseint
(properties.
getproperty
("maxtotal"))
);config.
setmaxidle
(integer.
parseint
(properties.
getproperty
("maxidle"))
);// 初始化連線池物件
jedispool =
newjedispool
(config,properties.
getproperty
("host"
),integer.
parseint
(properties.
getproperty
("port"))
);}public
static jedis getjedis()
}
設定之後的操作,簡化了很多
public
class
jedispoolutil
catch
(ioexception e)
// 建立連線池配置檔案物件
jedispoolconfig config =
newjedispoolconfig()
;// 設定
config.
setmaxtotal
(integer.
parseint
(properties.
getproperty
("maxtotal"))
);config.
setmaxidle
(integer.
parseint
(properties.
getproperty
("maxidle"))
);// 初始化連線池物件
jedispool =
newjedispool
(config,properties.
getproperty
("host"
),integer.
parseint
(properties.
getproperty
("port"))
);}public
static jedis getjedis()
}
超高效能 key value 資料庫 Redis
redis是乙個高效能的key value資料庫。redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關聯式資料庫起到很好的補充作用。它提供了python,ruby,erlang,php客戶端,使用很方便。前幾天微博發生了一起大的系統故障,很多技術的朋...
Redis 超高效能的key value資料庫
說明 redis 是乙個高效能的key value資料庫。redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關聯式資料庫起到很好的補充作用。它提供了python,ruby,erlang,php客戶端,使用很方便。問題是這個專案還很新,可能還不足夠穩定...
Redis高效能資料庫
redis高效能資料庫 redis 本質上是乙個非關係型資料庫,採用鍵值的方式記錄資料,由於其獨特的執行模式和資料儲存模式,在作用上通常可以用來當做關係型資料庫的快取來使用,從而提高資料查詢效率 redis最大特點 執行速度很快 原因 1 redis使用c語言開發,和作業系統的相容性更強,執行效率更...