Num01-->Redis定義
1跑慕、Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)闸拿、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型茶鉴、Key-Value數(shù)據(jù)庫(kù)搜吧,并提供多種語(yǔ)言的API娩梨。從2010年3月15日起碟渺,Redis的開(kāi)發(fā)工作由VMware主持
2、Redis是一個(gè)開(kāi)源(BSD許可)的街氢、內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng)扯键,它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件
3珊肃、redis是一個(gè)高性能的key-value存儲(chǔ)系統(tǒng)荣刑。和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多伦乔,包括string(字符串)厉亏、list(鏈表)、set(集合)烈和、zset(sortedset--有序集合)和hash(哈希類(lèi)型)爱只。redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)key/value存儲(chǔ)的不足招刹,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用恬试。它提供了Python沥匈,Ruby,Erlang忘渔,PHP客戶端,使用很方便
4缰儿、Redis支持主從同步畦粮。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器乖阵。這使得Redis可執(zhí)行單層樹(shù)復(fù)制宣赔。從盤(pán)可以有意無(wú)意的對(duì)數(shù)據(jù)進(jìn)行寫(xiě)操作。由于完全實(shí)現(xiàn)了發(fā)布/訂閱機(jī)制瞪浸,使得從數(shù)據(jù)庫(kù)在任何地方同步樹(shù)時(shí)儒将,可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助
Num02-->Redis數(shù)據(jù)類(lèi)型
redis是key-value的數(shù)據(jù)結(jié)構(gòu)对蒲,每條數(shù)據(jù)都是一個(gè)鍵值對(duì)
鍵的類(lèi)型是字符串
注意:鍵不能重復(fù)
值的類(lèi)型分為五種:
字符串string
哈希hash
列表list
集合set
有序集合zset
Num03-->Redis中string類(lèi)型
string是redis最基本的類(lèi)型
最大能存儲(chǔ)512MB數(shù)據(jù)
string類(lèi)型是二進(jìn)制安全的钩蚊,可以存儲(chǔ)任何數(shù)據(jù),比如數(shù)字蹈矮、圖片等
增加砰逻、修改
-----
如果設(shè)置的鍵不存在則為添加,如果設(shè)置的鍵已經(jīng)存在則修改
設(shè)置鍵值
set key value
例1:設(shè)置鍵為'py1'值為'gj'的數(shù)據(jù)
set 'py1' 'gj'
設(shè)置鍵值及過(guò)期時(shí)間泛鸟,以秒為單位
setex key seconds value
例2:設(shè)置鍵為'py2'值為'hr'過(guò)期時(shí)間為3秒的數(shù)據(jù)
setex 'py2' 3 'hr'
設(shè)置多個(gè)鍵值
mset key1 value1 key2 value2 ...
例3:設(shè)置鍵為'py3'值為'dx'蝠咆、鍵為'py4'值為'xd'、鍵為'py5'值為'nd'北滥、鍵為'py6'值為'bg'的數(shù)據(jù)
mset 'py3' 'dx' 'py4' 'xd' 'py5' 'nd' 'py6' 'bg'
追加值
append key value
例4:向鍵為py1中追加值' haha'
append 'py1' ' haha'
獲取
--
獲雀詹佟:根據(jù)鍵獲取值,如果不存在此鍵則返回nil
get key
例5:獲取鍵'py1'的值
get 'py1'
根據(jù)多個(gè)鍵獲取多個(gè)值
mget key1 key2 ...
例6:獲取鍵'py3'再芋、'py4'菊霜、'py5'、'py6'的值
mget 'py3' 'py4' 'py5' 'py6'
刪除
--
刪除鍵時(shí)會(huì)將值刪除
Num04-->Redis中鍵命令
查找鍵祝闻,參數(shù)支持正則表達(dá)式
keys pattern
例1:查看所有鍵
keys *
例2:查看名稱(chēng)中包含a的鍵
keys '*a*'
判斷鍵是否存在占卧,如果存在返回1,不存在返回0
exists key1
例3:判斷鍵'py1'联喘、'py2'是否存在
exists 'py1'
exists 'py2'
查看鍵對(duì)應(yīng)的value的類(lèi)型
type key
例4:查看鍵'py1'的值類(lèi)型华蜒,為redis支持的五種類(lèi)型中的一種
type 'py1'
刪除鍵及對(duì)應(yīng)的值
del key1 key2 ...
例5:刪除鍵'py3'、'py4'豁遭、'py5'叭喜、'py6'
del 'py3' 'py4' 'py5' 'py6'
設(shè)置過(guò)期時(shí)間,以秒為單位
如果沒(méi)有指定過(guò)期時(shí)間則一直存在蓖谢,直到使用DEL移除
expire key seconds
例6:設(shè)置鍵'py1'的過(guò)期時(shí)間為10秒
expire 'py1' 10
查看有效時(shí)間捂蕴,以秒為單位
ttl key
例7:查看鍵'py2'的有效時(shí)間
ttl 'py2'
Num05-->Redis中hash類(lèi)型
hash用于存儲(chǔ)對(duì)象譬涡,對(duì)象的結(jié)構(gòu)為屬性、值
值的類(lèi)型為string
增加啥辨、修改
-----
設(shè)置單個(gè)屬性
hset key field value
例1:設(shè)置鍵'py2'的屬性'name'為'hr'
hset 'py2' 'name' 'hr'
設(shè)置多個(gè)屬性
hmset key field1 value1 field2 value2 ...
例2:設(shè)置鍵'py3'的屬性'name'為'dx'涡匀、屬性'gender'為'1'、屬性'birthday'為'2017-1-1'
hmset 'py3' 'name' 'dx' 'gender' '1' 'birthday' '2017-1-1'
獲取
--
獲取指定鍵所有的屬性
hkeys key
例3:獲取鍵'py3'的所有屬性
hkeys 'py3'
獲取一個(gè)屬性的值
hget key field
例4:獲取鍵'py2'屬性'name'的值
hget 'py2' 'name'
獲取多個(gè)屬性的值
hmget key field1 field2 ...
例5:獲取鍵'py3'屬性'name'溉知、'gender'陨瘩、'birthday'的值
hmget 'py3' 'name' 'gender' 'birthday'
獲取所有屬性的值
hvals key
例6:獲取鍵'py3'所有屬性的值
hvals 'py3'
刪除
--
刪除整個(gè)hash鍵及值,使用del命令
刪除屬性级乍,屬性對(duì)應(yīng)的值會(huì)被一起刪除
hdel key field1 field2 ...
例7:獲取鍵'py3'的屬性'gender'舌劳、'birthday'
hdel 'py3' 'gender' 'birthday'
Num06-->Redis中l(wèi)ist類(lèi)型
列表的元素類(lèi)型為string
按照插入順序排序
增加
--
在左側(cè)插入數(shù)據(jù)
lpush key value1 value2 ...
例1:從鍵為'py11'的列表左側(cè)加入數(shù)據(jù)'dx'、'xd'
lpush 'py11' 'dx' 'xd'
在右側(cè)插入數(shù)據(jù)
rpush key value1 value2 ...
例2:從鍵為'py11'的列表右側(cè)加入數(shù)據(jù)'nd'玫荣、'bg'
rpush 'py11' 'nd' 'bg'
在指定元素的前或后插入新元素
linsert key before或after 現(xiàn)有元素 新元素
例3:在鍵為'py11'的列表中元素'nd'前加入'zbt'
linsert 'py11' before 'nd' 'zbt'
獲取
--
返回列表里指定范圍內(nèi)的元素
start甚淡、stop為元素的下標(biāo)索引
索引從左側(cè)開(kāi)始,第一個(gè)元素為0
索引可以是負(fù)數(shù)捅厂,表示從尾部開(kāi)始計(jì)數(shù)贯卦,如-1表示最后一個(gè)元素
lrange key start stop
例4:獲取鍵為'py11'的列表所有元素
lrange 'py11' 0 -1
修改
--
設(shè)置指定索引位置的元素值
索引從左側(cè)開(kāi)始,第一個(gè)元素為0
索引可以是負(fù)數(shù)恒傻,表示尾部開(kāi)始計(jì)數(shù)脸侥,如-1表示最后一個(gè)元素
lset key index value
例5:修改鍵為'py11'的列表中下標(biāo)為1的元素值為'xidu'
lset 'py11' 1 'xidu'
刪除
--
刪除指定元素
將列表中前count次出現(xiàn)的值為value的元素移除
count > 0: 從頭往尾移除
count < 0: 從尾往頭移除
count = 0: 移除所有
lrem key count value
例6.1:向列表'py12'中加入元素'h0'、'h1'盈厘、'h2'睁枕、'h0'、'h1'沸手、'h3'外遇、'h0'、'h1'
rpush list3 'h0' 'h1' 'h2' 'h0' 'h1' 'h3' 'h0' 'h1'
例6.2:從'py12'列表右側(cè)開(kāi)始刪除2個(gè)'h0'
lrem 'py12' -2 'h0'
例6.2:查看列表'py12'的所有元素
lrange 'py12' 0 -1
Num07-->Redis中set
無(wú)序集合
元素為string類(lèi)型
元素具有唯一性契吉,不重復(fù)
說(shuō)明:對(duì)于集合沒(méi)有修改操作
增加
--
添加元素
sadd key member1 member2 ...
例1:向鍵'py21'的集合中添加元素'yg'跳仿、'xln'、'yzp'
sadd 'py21' 'yg' 'xln' 'yzp'
獲取
--
返回所有的元素
smembers key
例2:獲取鍵'py21'的集合中所有元素
smembers 'py21'
刪除
--
刪除指定元素
srem key member
例3:刪除鍵'py21'的集合中元素'yzp'
srem 'py21' 'yzp'
Num08-->Redis中zset
sorted set捐晶,有序集合
元素為string類(lèi)型
元素具有唯一性菲语,不重復(fù)
每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類(lèi)型的score,表示權(quán)重惑灵,通過(guò)權(quán)重將元素從小到大排序
說(shuō)明:沒(méi)有修改操作
增加 添加
-----
zadd key score1 member1 score2 member2 ...
例1:向鍵'py31'的集合中添加元素'gj'山上、'hr'、'yg'英支、'xln'佩憾,權(quán)限分別為1、5、8妄帘、3
zadd 'py31' 1 'gj' 5 'hr' 8 'yg' 3 'xln'
獲取
--
返回指定范圍內(nèi)的元素
start楞黄、stop為元素的下標(biāo)索引
索引從左側(cè)開(kāi)始,第一個(gè)元素為0
索引可以是負(fù)數(shù)抡驼,表示從尾部開(kāi)始計(jì)數(shù)鬼廓,如-1表示最后一個(gè)元素
zrange key start stop
例2:獲取鍵'py31'的集合中所有元素
zrange 'py31' 0 -1
返回score值在min和max之間的成員
zrangebyscore key min max
例3:獲取鍵'py31'的集合中權(quán)限值在4和9之間的成員
zrangebyscore 'py31' 4 9
返回成員member的score值
zscore key member
例4:獲取鍵'py31'的集合中元素'yg'的權(quán)重
zscore 'py31' 'yg'
刪除
--
刪除指定元素
zrem key member1 member2 ...
例5:刪除集合'py31'中元素'yg'
zrem 'py31' 'yg'
刪除權(quán)重在指定范圍的元素
zremrangebyscore key min max
例6:刪除集合'py31'中權(quán)限在4、9之間的元素
zremrangebyscore 'py31' 4 9
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者