C# Redis緩存架構(gòu)設(shè)計二

一鸽扁、概述

由于架構(gòu)設(shè)計一里面如果多平臺公用相同Key的緩存更改配置后需要多平臺上傳最新的緩存配置文件來更新谭网,比較麻煩达罗,更新了架構(gòu)設(shè)計二實現(xiàn)了緩存配置的集中管理痒芝,不過這樣有有了過于中心化的問題俐筋,后續(xù)在看看如何修改

總體設(shè)計思路如下:

image

項目結(jié)構(gòu)如下:

image

二、服務(wù)端(提供Key配置文件管理及將Key配置存到緩存中)

KeyConfigList.xml緩存Key配置文件【與前一版一致】

image

KeyConfigList.xml

KeyEntity.cs是對應(yīng)xml文件的數(shù)據(jù)實體類(與客戶端通用)

image

KeyEntity.cs

RedisManager.cs是Redis的管理類使用的StackExchange.Redis.dll(與客戶端通用)

image

RedisManager.cs

KeyServer.cs是提供緩存配置文件管理严衬、監(jiān)聽澄者、存儲等功能的核心類

image

KeyServer.cs

服務(wù)端會讀取消息來監(jiān)控緩存是否含有配置信息所以服務(wù)端需要掛在成一個WindowsService服務(wù)

image

測試調(diào)用代碼

三、客戶端(根據(jù)KeyNames獲取緩存中的配置请琳,然后根據(jù)配置讀取緩存數(shù)據(jù)或創(chuàng)建緩存數(shù)據(jù)粱挡,如果沒有配置則會返回NULL并發(fā)送消息申請創(chuàng)建緩存配置,主業(yè)務(wù)不會中斷會直接穿透到數(shù)據(jù)庫取值)

**KeyEntity.cs **和 RedisManager.cs的代碼和服務(wù)端的一致俄精,有需要拷貝即可询筏!

CacheProvider.cs是對外提供緩存功能的類【與前一版一致】

image

CacheProvider.cs

MQProvider.cs是對外提供隊列功能的類【與前一版一致】

image

MQProvider.cs

KeyNames.cs配置緩存Key的名稱,用于尋找Key配置【與前一版一致】

image

KeyNames.cs

KeyClient.cs是對于使用緩存時尋找Key對應(yīng)配置信息的核心類

image

KeyClient.cs

客戶端使用只會接觸到CacheProvider.cs和MQProvider.cs兩個對外開放的操作類

使用步驟:

1嘀倒、向KeyNames.cs中添加一個唯一的KeyName用于找到指定的Key配置屈留;

2局冰、向服務(wù)端的KeyConfigList.xml中添加此KeyName的緩存配置(此功能的提供方式可以自己定義测蘑,如直接修改文件或提供管理程序等);

3康二、使用Cache或者M(jìn)Q的操作類傳遞KeyNames的枚舉值碳胳,再傳遞緩存值即可;

image

測試調(diào)用代碼

如有什么可以改進(jìn)的地方還請不吝指點沫勿,謝謝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挨约,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子产雹,更是在濱河造成了極大的恐慌甥绿,老刑警劉巖舔庶,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡菠镇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人角溃,你說我怎么就攤上這事±撼牛” “怎么了减细?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赢笨。 經(jīng)常有香客問我未蝌,道長,這世上最難降的妖魔是什么茧妒? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任树埠,我火速辦了婚禮,結(jié)果婚禮上嘶伟,老公的妹妹穿的比我還像新娘怎憋。我一直安慰自己,他們只是感情好九昧,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布绊袋。 她就那樣靜靜地躺著,像睡著了一般铸鹰。 火紅的嫁衣襯著肌膚如雪癌别。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天蹋笼,我揣著相機(jī)與錄音展姐,去河邊找鬼。 笑死剖毯,一個胖子當(dāng)著我的面吹牛圾笨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逊谋,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼擂达,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胶滋?” 一聲冷哼從身側(cè)響起板鬓,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎究恤,沒想到半個月后俭令,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡部宿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年抄腔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡妓柜,死狀恐怖箱季,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棍掐,我是刑警寧澤藏雏,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站作煌,受9級特大地震影響掘殴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粟誓,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一奏寨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹰服,春花似錦病瞳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至设易,卻和暖如春逗柴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背顿肺。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工戏溺, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屠尊。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓旷祸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親知染。 傳聞我的和親對象是個殘疾皇子肋僧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

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

  • 一些項目整理出的項目中引入緩存的架構(gòu)設(shè)計方案斑胜,希望能幫助你更好地管理項目緩存控淡,作者水平有限,如有不足還望指點止潘。 一...
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理掺炭,服務(wù)發(fā)現(xiàn),斷路器凭戴,智...
    卡卡羅2017閱讀 134,720評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法涧狮,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法者冤,異常的語法肤视,線程的語...
    子非魚_t_閱讀 31,669評論 18 399
  • 宋瓷古茶:如何泡飲普洱茶 一、茶壺的選擇涉枫。普洱茶的濃度較高邢滑,因此沖泡普洱茶宜選腹大的茶壺,用腹大的壺可避免茶湯過濃...
    宋瓷古茶01閱讀 128評論 0 0
  • 房貸手印紅跡尚未消退 便急匆匆地按在打卡機(jī)上 “已簽到”提示的語音 和心里的石頭一同落下 陸續(xù)而來的石頭 將沉寂一...
    夜跑如風(fēng)閱讀 312評論 9 33