一、redis簡單介紹
redis是NoSql家族的一員,鍵值對的內(nèi)存型數(shù)據(jù)庫。但是它支持把數(shù)據(jù)保存到本地。這點比memcached好。
缺點: 沒有本地數(shù)據(jù)緩沖, 目前還沒有完整的數(shù)據(jù)聚集化支持
優(yōu)點: 配置簡單, 使用方便, 高性能,支持不同的數(shù)據(jù)類型(hashes, lists, sets, sorted sets)
ASP.NET WebUI for viewing content of the cache
二、安裝
windows版本非官方版本。但是是”微軟的團隊維護的“這個是官方的說法。下載解壓運行起來服務(wù)端(如圖)
linux版官方版本,具體安裝也很簡單
代碼如下:
$ wget
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
三、常用命令
set key value 插入鍵
get key 獲取value
keys * 查詢所有鍵
del key 刪除鍵
flushall 清空數(shù)據(jù)庫
連接操作相關(guān)的命令
quit:關(guān)閉連接(connection)
auth:簡單密碼認(rèn)證
持久化
save:將數(shù)據(jù)同步保存到磁盤
bgsave:將數(shù)據(jù)異步保存到磁盤
lastsave:返回上次成功將數(shù)據(jù)保存到磁盤的Unix時戳
shundown:將數(shù)據(jù)同步保存到磁盤,然后關(guān)閉服務(wù)
遠(yuǎn)程服務(wù)控制
info:提供服務(wù)器的信息和統(tǒng)計
monitor:實時轉(zhuǎn)儲收到的請求
slaveof:改變復(fù)制策略設(shè)置
config:在運行時配置Redis服務(wù)器
對value操作的命令
exists(key):確認(rèn)一個key是否存在
del(key):刪除一個key
type(key):返回值的類型
keys(pattern):返回滿足給定pattern的所有key
randomkey:隨機返回key空間的一個
keyrename(oldname, newname):重命名key
dbsize:返回當(dāng)前數(shù)據(jù)庫中key的數(shù)目
expire:設(shè)定一個key的活動時間(s)
ttl:獲得一個key的活動時間
select(index):按索引查詢
move(key, dbindex):移動當(dāng)前數(shù)據(jù)庫中的key到dbindex數(shù)據(jù)庫
flushdb:刪除當(dāng)前選擇數(shù)據(jù)庫中的所有key
flushall:刪除所有數(shù)據(jù)庫中的所有key
對String操作的命令
set(key, value):給數(shù)據(jù)庫中名稱為key的string賦予值value
get(key):返回數(shù)據(jù)庫中名稱為key的string的value
getset(key, value):給名稱為key的string賦予上一次的value
mget(key1, key2,…, key N):返回庫中多個string的value
setnx(key, value):添加string,名稱為key,值為value
setex(key, time, value):向庫中添加string,設(shè)定過期時間time
mset(key N, value N):批量設(shè)置多個string的值
msetnx(key N, value N):如果所有名稱為key i的string都不存在
incr(key):名稱為key的string增1操作
incrby(key, integer):名稱為key的string增加integer
decr(key):名稱為key的string減1操作
decrby(key, integer):名稱為key的string減少integer
append(key, value):名稱為key的string的值附加value
substr(key, start, end):返回名稱為key的string的value的子串
對List操作的命令
rpush(key, value):在名稱為key的list尾添加一個值為value的元素
lpush(key, value):在名稱為key的list頭添加一個值為value的 元素
llen(key):返回名稱為key的list的長度
lrange(key, start, end):返回名稱為key的list中start至end之間的元素
ltrim(key, start, end):截取名稱為key的list
lindex(key, index):返回名稱為key的list中index位置的元素
lset(key, index, value):給名稱為key的list中index位置的元素賦值
lrem(key, count, value):刪除count個key的list中值為value的元素
lpop(key):返回并刪除名稱為key的list中的首元素
rpop(key):返回并刪除名稱為key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并刪除名稱為srckey的list的尾元素,并將該元素添加到名稱為dstkey的list的頭部
對Set操作的命令
sadd(key, member):向名稱為key的set中添加元素member
srem(key, member) :刪除名稱為key的set中的元素member
spop(key) :隨機返回并刪除名稱為key的set中一個元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名稱為key的set的基數(shù)
sismember(key, member) :member是否是名稱為key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并將交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并將并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并將差集保存到dstkey的集合
smembers(key) :返回名稱為key的set的所有元素
srandmember(key) :隨機返回名稱為key的set的一個元素
對Hash操作的命令
hset(key, field, value):向名稱為key的hash中添加元素field
hget(key, field):返回名稱為key的hash中field對應(yīng)的value
hmget(key, (fields)):返回名稱為key的hash中field i對應(yīng)的value
hmset(key, (fields)):向名稱為key的hash中添加元素field
hincrby(key, field, integer):將名稱為key的hash中field的value增加integer
hexists(key, field):名稱為key的hash中是否存在鍵為field的域
hdel(key, field):刪除名稱為key的hash中鍵為field的域
hlen(key):返回名稱為key的hash中元素個數(shù)
hkeys(key):返回名稱為key的hash中所有鍵
hvals(key):返回名稱為key的hash中所有鍵對應(yīng)的value
hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應(yīng)的value
更多信息請查看IT技術(shù)專欄