Spring Data Redis-keyspace notifications

觀察者模式

這種創(chuàng)建一個(gè)消息中心拔鹰, 所有消息發(fā)布者發(fā)布消息到中心凿掂, 中心把消息通知到各訂閱者的設(shè)計(jì)模式在GUI程序的事件模型中使用比較多是牢。

而放在WEB應(yīng)用中灯荧,主要用來(lái)解決流程計(jì)時(shí)礁击, 以及代替輕量級(jí)的實(shí)時(shí)隊(duì)列的功能(如計(jì)數(shù)的邏輯的異步)。

Channel

頻道, 每一個(gè)訂閱者可根據(jù)頻道選擇自己喜歡的信息哆窿,一個(gè)訂閱者可能對(duì)多個(gè)頻道有興趣链烈。 但一個(gè)消息發(fā)布者不宜把消息發(fā)布到多個(gè)頻道中, 至于說(shuō)為什么不宜發(fā)布到多個(gè)頻道中挚躯, 我這暫時(shí)很難拿出一個(gè)合理的數(shù)學(xué)證明强衡。 不過(guò)有個(gè)很簡(jiǎn)單的邏輯, 如果一個(gè)訂閱者訂閱了多個(gè)頻道码荔, 一個(gè)消息又發(fā)到了多個(gè)頻道漩勤, 那么一個(gè)訂閱者就可會(huì)收到重復(fù)的消息,即使消息中心應(yīng)該處理這個(gè)重復(fù)的消息缩搅, 但明顯處理邏輯增加了越败,遍歷訂閱者的次數(shù)也增加了。 具體分析依賴(lài)于實(shí)現(xiàn)硼瓣。

=== Keyspace Notifications

其官網(wǎng)這樣描述

Keyspace notifications allows clients to subscribe to Pub/Sub channels in order to receive events affecting the Redis data set in some way.
Examples of the events that is possible to receive are the following:
All the commands affecting a given key.
All the keys receiving an LPUSH operation.
All the keys expiring in the database 0.
Events are delivered using the normal Pub/Sub layer of Redis, so clients implementing Pub/Sub are able to use this feature without modifications.

Redis 是一個(gè)鍵值對(duì)的系統(tǒng)究飞, 其數(shù)據(jù)變化會(huì)產(chǎn)生事件, 具體內(nèi)容可參考 http://redis.io/topics/notifications

這里我想用來(lái)做流程計(jì)時(shí)堂鲤, 所以關(guān)心的是 EXPIRE 事件亿傅。 Keyspace notifications 消耗CPU,默認(rèn)是關(guān)閉的瘟栖,所以需要在配置文件中聲明葵擎, 下面是可控粒度。

K Keyspace events, published with keyspace@<db> prefix.
E Keyevent events, published with keyevent@<db> prefix.
g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
$ String commands
l List commands
s Set commands
h Hash commands
z Sorted set commands
x Expired events (events generated every time a key expires)
e Evicted events (events generated when a key is evicted for maxmemory)
A Alias for g$lshzxe, so that the "AKE" string means all the events.

Spring Data Redis

其配置可參考 http://docs.spring.io/spring-data/redis/docs/1.7.1.RELEASE/reference/html/#redis:pubsub:subscribe 沒(méi)什么可說(shuō)的半哟, 但需要注意的是酬滤, 需要使用org.springframework.data.redis.listener.PatternTopic 來(lái)使得訂閱者訂閱多個(gè)頻道。

其它

這里實(shí)現(xiàn)的觀察者模式比較簡(jiǎn)單镜沽, 但事實(shí)上,我們也暫時(shí)不用去考慮觀察者的沖突贱田,時(shí)效缅茉,處理時(shí)間與堆積,處理優(yōu)先的問(wèn)題男摧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔬墩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耗拓,更是在濱河造成了極大的恐慌拇颅,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乔询,死亡現(xiàn)場(chǎng)離奇詭異樟插,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)黄锤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搪缨,“玉大人,你說(shuō)我怎么就攤上這事鸵熟「北啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵流强,是天一觀的道長(zhǎng)痹届。 經(jīng)常有香客問(wèn)我,道長(zhǎng)打月,這世上最難降的妖魔是什么队腐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮僵控,結(jié)果婚禮上香到,老公的妹妹穿的比我還像新娘。我一直安慰自己报破,他們只是感情好悠就,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著充易,像睡著了一般梗脾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盹靴,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天炸茧,我揣著相機(jī)與錄音,去河邊找鬼稿静。 笑死梭冠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的改备。 我是一名探鬼主播控漠,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼悬钳!你這毒婦竟也來(lái)了盐捷?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤默勾,失蹤者是張志新(化名)和其女友劉穎碉渡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體母剥,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滞诺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年形导,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铭段。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骤宣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出序愚,到底是詐尸還是另有隱情憔披,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布爸吮,位于F島的核電站芬膝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏形娇。R本人自食惡果不足惜锰霜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桐早。 院中可真熱鬧癣缅,春花似錦、人聲如沸哄酝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)陶衅。三九已至屡立,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搀军,已是汗流浹背膨俐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罩句,地道東北人焚刺。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像门烂,于是被迫代替她去往敵國(guó)和親乳愉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理诅福,服務(wù)發(fā)現(xiàn)匾委,斷路器拖叙,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • # redis 配置文件示例 # 當(dāng)你需要為某個(gè)配置項(xiàng)指定內(nèi)存大小的時(shí)候氓润,必須要帶上單位, # 通常的格式就是 1...
    iyimao閱讀 790評(píng)論 0 2
  • Redis 配置文件示例 注意:想要讀取配置文件薯鳍,Redis的第一個(gè)參數(shù)必須是文件的路徑 ./redis-serv...
    起個(gè)名忒難閱讀 1,192評(píng)論 0 1
  • 5/15/2017 7:06:35 PM 縱觀各大組件咖气,配置文件占據(jù)極其重要的地位挨措。可配置化也是當(dāng)下開(kāi)發(fā)的一流行趨...
    愛(ài)做夢(mèng)的胖子閱讀 4,421評(píng)論 0 8
  • 今天就說(shuō)教育課崩溪,從小孩子出生來(lái)到了這個(gè)世界的時(shí)候浅役,哇哇大哭,看見(jiàn)了藍(lán)色的天空伶唯,幸福的家庭觉既。一天一天地長(zhǎng)大,學(xué)會(huì)跟人...
    紅火太陽(yáng)閱讀 174評(píng)論 0 0