三 redis入門

一 redis的安裝啟動(dòng)

  1. 下載redis:https://github.com/MSOpenTech/redis/releases传趾。

  2. 啟動(dòng)services,在redis安裝目錄下運(yùn)行

redis-server.exe redis.windows.conf 
  1. 啟動(dòng)client
redis-cli.exe -h 127.0.0.1 -p 6379 

二 redis的數(shù)據(jù)類型

Redis支持五種數(shù)據(jù)類型:string(字符串)敌呈,hash(哈希)嚼鹉,list(列表),set(集合)及zset(sorted set:有序集合)驱富。

  1. String(字符串):string是redis最基本的類型锚赤,一個(gè)key對(duì)應(yīng)一個(gè)value。
127.0.0.1:6379> SET name "kevin"
OK
127.0.0.1:6379> GET name
"kevin"
  1. Hash(哈希):edis hash 是一個(gè)鍵值對(duì)集合褐鸥。Redis hash是一個(gè)string類型的field和value的映射表线脚,hash特別適合用于存儲(chǔ)對(duì)象
127.0.0.1:6379> HMSET user:1 username rose age 20 addr guangdong
OK
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "rose"
3) "age"
4) "20"
5) "addr"
6) "guangdong"
  1. List(列表):Redis 列表是簡單的字符串列表,按照插入順序排序叫榕。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)浑侥。
127.0.0.1:6379> lpush lists apple orange
(integer) 2
127.0.0.1:6379> lrange lists 0 10
1) "orange"
2) "apple"
127.0.0.1:6379> lpush lists banana
(integer) 3
127.0.0.1:6379> lrange lists 0 3
(integer) 3
1) "banana"
2) "orange"
3) "apple"
127.0.0.1:6379>
  1. Set(集合):Redis的Set是string類型的無序集合。
127.0.0.1:6379> sadd arrays one tow
(integer) 2
127.0.0.1:6379> sadd arrays one
(integer) 0
127.0.0.1:6379> sadd arrays three
(integer) 1
127.0.0.1:6379> sadd arrays one four
(integer) 1
127.0.0.1:6379> smembers arrary
1) "four"
2) "tow"
3) "one"
4) "three"

  1. zset(sorted set:有序集合):Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復(fù)的成員晰绎。不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)寓落。redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)荞下。
127.0.0.1:6379> zadd arrs 0 iOS
(integer) 1
127.0.0.1:6379> zadd arrs 0 android
(integer) 1
127.0.0.1:6379> zrange arrs 0 2
1) "android"
2) "iOS"
127.0.0.1:6379> zadd arrs 0 android
(integer) 0
127.0.0.1:6379> zrange arrs 0 2
1) "android"
2) "iOS"

三 Redis 鍵(key)

  • set key value #新增一個(gè)key
  • del key #在 key 存在時(shí)刪除 key伶选。成功返回1
  • dump key #序列化給定 key ,并返回被序列化的值尖昏。
127.0.0.1:6379> dump mykey
"\x00\x03abc\a\x00&\x9e\xe5\xceI\xb8w\xf8"
  • exists key #檢查給定 key 是否存在
  • expire key seconds #為給定 key 設(shè)置過期時(shí)間仰税。
  • persist key #移除 key 的過期時(shí)間,key 將持久保持抽诉。
  • type key #返回 key 所儲(chǔ)存的值的類型陨簇。

四 Redis 發(fā)布訂閱

Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息迹淌。
Redis 客戶端可以訂閱任意數(shù)量的頻道河绽。

127.0.0.1:6379> SUBSCRIBE redisChat

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

我們先重新開啟個(gè) redis 客戶端,然后在同一個(gè)頻道 redisChat 發(fā)布消息唉窃,訂閱者就能接收到消息

127.0.0.1:6379> PUBLISH redisChat "this is a test message"

(integer) 1

# 訂閱者的客戶端會(huì)顯示如下消息
1) "message"
2) "redisChat"
3) "this is a test message"

五 Redis 事務(wù)

  1. Redis 事務(wù)可以一次執(zhí)行多個(gè)命令耙饰, 并且?guī)в幸韵聝蓚€(gè)重要的保證:
  • 事務(wù)是一個(gè)單獨(dú)的隔離操作:事務(wù)中的所有命令都會(huì)序列化、按順序地執(zhí)行句携。
  • 事務(wù)在執(zhí)行的過程中榔幸,不會(huì)被其他客戶端發(fā)送來的命令請(qǐng)求所打斷。
    事務(wù)是一個(gè)原子操作:事務(wù)中的命令要么全部被執(zhí)行矮嫉,要么全部都不執(zhí)行削咆。
  1. 一個(gè)事務(wù)從開始到執(zhí)行會(huì)經(jīng)歷以下三個(gè)階段:
  • 開始事務(wù)。
  • 命令入隊(duì)蠢笋。
  • 執(zhí)行事務(wù)拨齐。
  1. redis事務(wù)命令
DISCARD #取消事務(wù),放棄執(zhí)行事務(wù)塊內(nèi)的所有命令昨寞。
EXEC #執(zhí)行所有事務(wù)塊內(nèi)的命令瞻惋。
MULTI #標(biāo)記一個(gè)事務(wù)塊的開始厦滤。
  1. 舉個(gè)栗子
127.0.0.1:6379> MULTI
OK

127.0.0.1:6379> SET bookname "redis"
QUEUED

127.0.0.1:6379> GET bookname
QUEUED

127.0.0.1:6379> SADD langue "iOS" "android" "java"
QUEUED

127.0.0.1:6379> SMEMBERS langue
QUEUED

127.0.0.1:6379> EXEC
1) OK
2) "redis"
3) (integer) 3
4) 1) "android"
   2) "java"
   3) "iOS"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市歼狼,隨后出現(xiàn)的幾起案子掏导,更是在濱河造成了極大的恐慌,老刑警劉巖羽峰,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趟咆,死亡現(xiàn)場離奇詭異,居然都是意外死亡梅屉,警方通過查閱死者的電腦和手機(jī)值纱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坯汤,“玉大人虐唠,你說我怎么就攤上這事《枘簦” “怎么了疆偿?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庶近。 經(jīng)常有香客問我翁脆,道長,這世上最難降的妖魔是什么鼻种? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沙热,結(jié)果婚禮上叉钥,老公的妹妹穿的比我還像新娘。我一直安慰自己篙贸,他們只是感情好投队,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爵川,像睡著了一般敷鸦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寝贡,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天扒披,我揣著相機(jī)與錄音,去河邊找鬼圃泡。 笑死碟案,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颇蜡。 我是一名探鬼主播价说,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼辆亏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鳖目?” 一聲冷哼從身側(cè)響起扮叨,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎领迈,沒想到半個(gè)月后彻磁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惦费,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年兵迅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪贫。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恍箭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞧省,到底是詐尸還是另有隱情扯夭,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布鞍匾,位于F島的核電站交洗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏橡淑。R本人自食惡果不足惜构拳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梁棠。 院中可真熱鬧置森,春花似錦、人聲如沸符糊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽男娄。三九已至行贪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間模闲,已是汗流浹背建瘫。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留围橡,地道東北人暖混。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像翁授,于是被迫代替她去往敵國和親拣播。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晾咪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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