Redis其它功能

過期

EXPIRE和TTL

EXPIRE可以設(shè)定一個key的銷毀時間(不需要關(guān)心value的類型):

set resource:lock "demo"

expire resource:lock 120 //設(shè)置resource:lock這個key在120秒之后被回收

EXPIREAT key unixtimestamp:設(shè)置一個key在一個指定的unix時間銷毀

PERSIST key:去掉key的過期限制;

TTL可以用來查看一個key還有多少時間回收;

如果TTL返回-2代表一個KEY不存在(已經(jīng)回收);

如果TTL返回-1代表一個KEY不會過期(直接用set設(shè)置的key)

如果使用set重新設(shè)置了一個KEY值,那么TTL值也會被重置祷蝌;

發(fā)布和訂閱

1,redis提供了一個訂閱和發(fā)布消息的功能消恍,在這個功能中榴徐,redis扮演了一個消息路由服務(wù)的功能;

2羡榴,redis的發(fā)布訂閱功能是在各個客戶端之間的發(fā)布/訂閱碧查;

3,常用命令:

1校仑, SUBSCRIBE channel [channel ...] :訂閱一個頻道忠售;

subscribe warnings errors =>訂閱warnings和errors兩個頻道;

2迄沫, PUBLISH channel message :向頻道中發(fā)布一條消息:

subscribe warnings 'something wrong?'稻扬;

3, UNSUBSCRIBE [channel [channel ...]] :取消訂閱頻道羊瘩,如果直接是UNSUBSCRIBE命令泰佳,則取消所有消息訂閱;

4尘吗,訂閱/發(fā)布的常見使用場景:

redis的訂閱/發(fā)布的性能非常高逝她,可以達(dá)到15000/秒次;非常適合用于完成實施通訊/高效的消息隊列等場景睬捶;

排序

redis中提供了sort命令黔宛,可以對list,set擒贸,sortedset進(jìn)行復(fù)雜的排序功能臀晃,排序的結(jié)果是一個list觉渴;

SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]

幾個sort的例子:

rpush nlist 2 1 4 7 2 4 6

1,SORT mylist:對mylist進(jìn)行排序(從小到大)徽惋;1 2 2 4 4 6 7

2疆拘,SORT mylist DESC:從大到小寂曹;7 6 4 4 2 2 1

3哎迄,SORT mylist LIMIT 0 3 :從小到大排序并截取0~3位數(shù)據(jù);1 2 2

復(fù)雜的sort:

lpush area_users 1

set user:name:1 sky

set user:level:1 36

lpush area_users 2

set user:name:2 leo

set user:level:2 40

lpush area_users 3

set user:name:3 loo

set user:level:3 20

sort area_users:按照user的id排序隆圆;

sort area_users by user:level:*:按照user:level:id 的值去排序area_users的值漱挚;

sort area_users by user:level:* get user:name:* desc:按照user:level:id的值降序排序,并按照排序的內(nèi)容去得到user:name:*中的值渺氧;

lpush wolfcode:shop:bugs 1 2 3

hset bug:1 priority 2

hset bug:1 details "this is first bug! priority is 2."

hset bug:2 priority 3

hset bug:2 details "this is second bug! priority is 3."

hset bug:3 priority 1

hset bug:3 details "this is third bug! priority is 1."

在get中旨涝,如果get的key對應(yīng)的value是一個hashes

可以使用->獲取hashes中的特定fields:

sort wolfcode:shop:bugs by bug:->priority get bug:->details:按照bug:中的priority字段排序watch:leto的值,并且按照排序完成的值去bug:中的hashes得到details字段值侣背;

scan

scan 命令用于遍歷 key白华,使用增量的方式,性能較高贩耐;

scan 的原理:在掃描之前,設(shè)置一個游標(biāo)值(從0開始)潮太,并可以設(shè)置篩選 key 的模式和增量的數(shù)量(即一次要看多少條數(shù)據(jù))管搪;遍歷的結(jié)果返回一個 list ,list 第一個值代表的是下一次要進(jìn)行迭代的開始的游標(biāo)值(注意铡买,這個值不是下標(biāo)更鲁,就是一個用來表示內(nèi)部位置的值),我們就可以使用這個游標(biāo)值進(jìn)行下一次增量遍歷奇钞,第二個值是一個 list澡为,表示這一次遍歷得到的 key 值;

scan 0 count 3 =>

  1. "2"

    1. "user:level:2"

    2. "user:name:2"

    3. "user:name:3"

scan 2 count 3 =>

  1. "9"

    1. "server:version"

    2. "user:level:3"

    3. "area_users"

    4. "user:name:1"

注意景埃,如果在遍歷的時候媒至,不使用 match,那么count 一般能夠控制住返回的數(shù)量纠亚,如果使用了match塘慕,結(jié)果數(shù)量不定;默認(rèn)count為10蒂胞;(可能返回的內(nèi)容會多于count)图呢;

scan 0 match user:level:* count 3

事務(wù)

redis可以把一組操作包裝在一個事務(wù)塊中,讓這些語句的執(zhí)行具有原子性;

MULTI:代表一個事務(wù)塊的開始蛤织;

EXEC :執(zhí)行一個事務(wù)塊中的語句赴叹,并將連接狀態(tài)恢復(fù)到正常;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末指蚜,一起剝皮案震驚了整個濱河市乞巧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摊鸡,老刑警劉巖绽媒,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異免猾,居然都是意外死亡是辕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門猎提,熙熙樓的掌柜王于貴愁眉苦臉地迎上來获三,“玉大人,你說我怎么就攤上這事锨苏「斫蹋” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵伞租,是天一觀的道長贞谓。 經(jīng)常有香客問我,道長肯夏,這世上最難降的妖魔是什么经宏? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任犀暑,我火速辦了婚禮驯击,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耐亏。我一直安慰自己徊都,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布广辰。 她就那樣靜靜地躺著暇矫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪择吊。 梳的紋絲不亂的頭發(fā)上李根,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音几睛,去河邊找鬼房轿。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的囱持。 我是一名探鬼主播夯接,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纷妆!你這毒婦竟也來了盔几?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤掩幢,失蹤者是張志新(化名)和其女友劉穎逊拍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體际邻,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡顺献,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了枯怖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片注整。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖度硝,靈堂內(nèi)的尸體忽然破棺而出肿轨,到底是詐尸還是另有隱情,我是刑警寧澤蕊程,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布椒袍,位于F島的核電站,受9級特大地震影響藻茂,放射性物質(zhì)發(fā)生泄漏驹暑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一辨赐、第九天 我趴在偏房一處隱蔽的房頂上張望优俘。 院中可真熱鬧,春花似錦掀序、人聲如沸帆焕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叶雹。三九已至,卻和暖如春换吧,著一層夾襖步出監(jiān)牢的瞬間折晦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工沾瓦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留满着,地道東北人打颤。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像漓滔,于是被迫代替她去往敵國和親编饺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗响驴。 張土汪:刷leetcod...
    土汪閱讀 12,743評論 0 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理透且,服務(wù)發(fā)現(xiàn),斷路器豁鲤,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 深入淺出Redis1.Redis的發(fā)展史Redis[Remote Directory Server]:遠(yuǎn)程服務(wù)器字...
    ArleyDu閱讀 563評論 0 0
  • 雪碧&可樂:誰還不會擺個pos啊秽誊。
    慢生活工坊閱讀 142評論 0 0
  • 你可能永遠(yuǎn)不會看著這樣的我,這樣的話琳骡,因為你我之間的無緣無故锅论,使得形同陌路。我一直不了解自己對你的感覺楣号,只是覺得是...
    一筒閱讀 237評論 0 0