Redis一些學(xué)習(xí)總結(jié)

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)系作者
  • 序言:七十年代末致盟,一起剝皮案震驚了整個(gè)濱河市桑阶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勾邦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件割择,死亡現(xiàn)場(chǎng)離奇詭異眷篇,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)荔泳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)蕉饼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人玛歌,你說(shuō)我怎么就攤上這事昧港。” “怎么了支子?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵创肥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我值朋,道長(zhǎng)叹侄,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任昨登,我火速辦了婚禮趾代,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丰辣。我一直安慰自己撒强,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布笙什。 她就那樣靜靜地躺著飘哨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪得湘。 梳的紋絲不亂的頭發(fā)上杖玲,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音淘正,去河邊找鬼摆马。 笑死臼闻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的囤采。 我是一名探鬼主播述呐,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蕉毯!你這毒婦竟也來(lái)了乓搬?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤代虾,失蹤者是張志新(化名)和其女友劉穎进肯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體棉磨,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡江掩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乘瓤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片环形。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖衙傀,靈堂內(nèi)的尸體忽然破棺而出抬吟,到底是詐尸還是另有隱情,我是刑警寧澤统抬,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布火本,位于F島的核電站,受9級(jí)特大地震影響聪建,放射性物質(zhì)發(fā)生泄漏发侵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一妆偏、第九天 我趴在偏房一處隱蔽的房頂上張望刃鳄。 院中可真熱鬧,春花似錦钱骂、人聲如沸叔锐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)愉烙。三九已至,卻和暖如春解取,著一層夾襖步出監(jiān)牢的瞬間步责,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔓肯,地道東北人遂鹊。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蔗包,于是被迫代替她去往敵國(guó)和親秉扑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Redis 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介 Redis 可以存儲(chǔ)鍵與5種不同數(shù)據(jù)結(jié)構(gòu)類(lèi)型之間的映射调限,這5種數(shù)據(jù)結(jié)構(gòu)類(lèi)型分別為Stri...
    DreamerRzc閱讀 236,871評(píng)論 26 273
  • Redis的內(nèi)存優(yōu)化 聲明:本文內(nèi)容來(lái)自《Redis開(kāi)發(fā)與運(yùn)維》一書(shū)第八章舟陆,如轉(zhuǎn)載請(qǐng)聲明。 Redis所有的數(shù)據(jù)都...
    meng_philip123閱讀 18,892評(píng)論 2 29
  • 本文為筆者對(duì)在學(xué)習(xí)Redis過(guò)程中所收集資料的一個(gè)總結(jié)耻矮,目的是為了以后方便回顧相關(guān)的知識(shí),大部分為非原創(chuàng)內(nèi)容秦躯。特此...
    EakonZhao閱讀 14,441評(píng)論 0 9
  • 記得以前看過(guò)一篇文章,大致是說(shuō)一個(gè)自律的人會(huì)把自己活成一支隊(duì)伍裆装,用類(lèi)近乎苦行僧的嚴(yán)格要求來(lái)約束和管理自己宦赠,迷倒萬(wàn)千...
    木子小陽(yáng)閱讀 4,187評(píng)論 29 112
  • #pragma mark----獲取設(shè)備型號(hào) + (NSString *)deviceModel{ return ...
    彬至睢陽(yáng)閱讀 553評(píng)論 0 0