您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis發布訂閱原理(Redis哨兵機制原理淺析)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-13 04:23:48【】0人已围观
简介/p>privateISystemConfigServicesystemConfigService;@OverridepublicvoidreceiveMessage(Stringmessage){l
private ISystemConfigService systemConfigService;
@Override
public void receiveMessage(String message) {
logger.info("消息接收:"+message);
JSONObject object = JSONObject.parseObject(message);
String businessType = object.getString("businessType");
logger.info("處理業務類型:businessType="+businessType);
if(BusinessTypeEnum.UPDATE_SYSTEM_CONFIG.toString().equals(businessType)){ //處理SystemConfig緩存
String jsonStr = object.getString("jsonStr");
if(jsonStr!=null&&!"".equals(jsonStr)){
JSONObject json = JSONObject.parseObject(object.getString("jsonStr"));
for(String key:json.keySet()){
String value = json.getString(key);
SystemConfig systemConfig = SystemConfigContainer.instance().getSystemConfig(key);
if(systemConfig!=null){
systemConfig.setKeyValue(value);
SystemConfigContainer.instance().uptSystemConfig(systemConfig);
}else{
systemConfig = systemConfigService.selectByPrimaryJianMing(key);
systemConfig.setKeyValue(value);
SystemConfigContainer.instance().uptSystemConfig(systemConfig);
}
}
}
}
}
}
《Redis設計與實現》pdf下載在線閱讀,求百度網盤云資源
《Redis設計與實現》(黃健宏)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:買粉絲s://pan..買粉絲/s/1M0lgX6oCAbCTQfyVSURJyQ 密碼:g1k5
書名:Redis設計與實現
作者:黃健宏
豆瓣評分:8.6
出版社:機械工業出版社
出版年份:2014-6
頁數:388
內容簡介:
【官方網站】
本書的官方網站 買粉絲.RedisBook.買粉絲 提供了書本試讀、相關源碼下載和勘誤回報等服務,歡迎讀者瀏覽和使用。
【編輯推薦】
系統而全面地描述了 Redis 內部運行機制
圖示豐富,描述清晰,并給出大量參考信息,是NoSQL數據庫開發人員案頭必備
包括大部分Redis單機特征,以及所有多機特性
【讀者評價】
這本書描述的知識點很豐富,覆蓋很全,里面提到特性較多,有不少我們也沒用過 :) 每個命令內部的機制的介紹很不錯,很多估計也是首次有詳細文檔介紹。
——楊衛華(@TimYang)新浪微博技術總監
近幾年Redis以其高性能、高靈活性的優點,變得越來越流行。但很多人在使用Redis時,僅僅還是停留在比較表層的功能性認識,缺乏對內部機制原理的深入理解。本書是huangz同學長期對Redis源碼的閱讀心得結晶,書中對Redis的各個方面都進行了詳細且深入的講解,將復雜的原理用最簡單的方式為大家解構和講解,強烈推薦給每一位Redis的使用者閱讀。
—— iammutex,NoSQLFan站長,樂視網技術經理
Redis 是近些年來特別火爆的 NoSQL 之一。縱觀中外各種書籍還沒有一本能對 Redis 內部進行深入剖析,《Redis 設計與實現》可謂開此先河。常和作者在網上交流,知道作者為這本書付出了大量的心血。這本書行文流暢,思路清晰,詳細地介紹了 Redis 源碼的方方面面。無論是想學習 NoSQL、網絡編程的初學者,還是源碼控的進階者,本書都會有很大的幫助。
—— 阮若夷,支付寶高級專家
【內容簡介】
本書全面而完整地講解了Redis的內部機制與實現方式,對Redis的大多數單機功能以及所有多機功能的實現原理進行了介紹,展示了這些功能的核心數據結構以及關鍵的算法思想,圖示豐富,描述清晰,并給出大量參考信息。通過閱讀本書,讀者可以快速、有效地了解Redis的內部構造以及運作機制,更好、更高效地使用Redis。
本書主要分為四大部分。第一部分“數據結構與對象”介紹了Redis中的各種對象及其數據結構,并說明這些數據結構如何影響對象的功能和性能。第二部分“單機數據庫的實現”對Redis實現單機數據庫的方法進行了介紹,包括數據庫、RDB持久化、AOF持久化、事件等。第三部分“多機數據庫的實現”對Redis的Sentinel、復制、集群三個多機功能進行了介紹。第四部分“獨立功能的實現”對Redis中各個相對獨立的功能模塊進行了介紹,涉及發布與訂閱、事務、Lua腳本、排序、二進制位數組、慢查詢日志、監視器等。本書作者專門維護了買粉絲.redisbook.買粉絲網站,提供帶有詳細注釋的Redis源代碼,以及本書相關的更新內容。
作者簡介:
黃健宏 軟件開發者,他喜歡函數式編程,熱愛開源軟件。出于對數據庫的強烈興趣,他開始閱讀和分析 Redis 源代碼,并對 Redis 2.6 和 Redis 3.0 的源代碼進行了詳細注釋。他翻譯并維護著 Redis 中文文檔網站 買粉絲.RedisDoc .買粉絲 ,編寫 了 OORedis 庫。除此之外,他還是《Redis in Action》一書的譯者。
作者的豆瓣主頁:douban.買粉絲/people/i_m_huangz/
spring-redis 發布訂閱模式:發布一條消息收到了兩條,重復監聽
當你看到這個文章時,想必已經了解了一些關于spring-redis發布訂閱方面的知識,如果你也遇到同樣的問題
那么請考慮spring在啟動時有沒有重復的加載配置文件
具體的方式可以在 AbstractApplicationContext 的 refresh() 方法中打斷點,如果走了兩次,說明配置文件加載了兩遍
而配置文件加載兩遍的原因是因為web.xml中DispatcherServlet和ContextLoaderLinistener 共用了 某些配置文件導致的。
Redis發布訂閱和Stream
發布訂單系統是日常開發中經常會用到的功能。簡單來說,就是發布者發布消息,訂閱者就會接受到消息并進行相應的處理,如下圖所示。
Redis為我們提供了發布/訂閱的功能模塊PubSub,可以用于消息傳遞。
其中發布者publisher、訂閱者subscriber都是redis客戶端,channel則是redis服務器。
發布者publisher向channel發送消息,訂閱該channel的subscriber就會接收到消息。
發布消息publish
訂閱test1、test2的客戶端會收到消息
按照上述這種方式,如果 訂閱者subscriber想要訂閱多個channel 則需要同時指定多個channel的名稱,redis為了解決這個問題提供 psubscribe模式匹配 這種訂閱方式,可以通過通配符的方式匹配頻道。
發布消息
之前訂閱ch*的客戶端就會收到cha頻道和買粉絲頻道的消息,這樣就一次性訂閱多個頻道
redis服務端存儲了訂閱頻道/模式的客戶端列表
相當于如果客戶端訂閱一個頻道 ,那么服務端的 pubsub_channels 就會存儲一條數據, pubsub_channels 其實是一個鏈表,key對應channel,value對應客戶端列表,根據key訂閱的頻道,就可以找到訂閱該頻道的所有客戶端。
同時如果客戶端訂閱一個模式 , pubsub_patterns 也會新增一條數據,記錄當前客戶端訂閱的模式, pubsub_patterns 也有自己的數據結構,其中就包含了客戶端以及模式。
當發布者向某個頻道發布消息時,就會遍歷 pubsub_channels 找到訂閱該頻道的客戶端列表,依次向這些客戶端發送消息。
然后遍歷 pubsub_patterns 找到符合當前頻道的模式,同時找到模式對應的客戶端,然后向客戶端發送消息。
雖然Redis提供了發布/訂閱的功能,但是并不完善,導致基本沒有合適的場景能夠使用。
PubSub缺點:
直到Redis5.0出現之后,出現了Stream這種數據結構,才終于完善了Redis的消息機制 。
Stream實際上就是一個消息列表,只是他幾乎實現了消息隊列所需要的所有功能,包括:
同時需要注意的是Stream只是一個數據結構,他不會主動把消息推送給消費者,需要消費者主動來消費數據 。
每個Stream都有唯一的名稱,它就是Redis的key,首次使用 xadd 指令追加消息時自動創建。
常見操作命令如下表:
如果客戶端希望知道自身消費到第幾條數據了,那么就需要記錄一下當前消費的消息ID,下次再次消費的時候就從上次消費的消息ID開始讀取數據即可。
消費組中多了一個游標 last_delivered_id ,表示當前消費到了哪一條數據。同時所有的數據都
很赞哦!(6593)
相关文章
- 01 上海坤豫國際貿易有限公司(三輪摩托車 十大品牌 都有那些?)
- 01 上海外賣員一單能賺多少(外賣員送一單掙多少錢?)
- 01 上海外賣電子牌照多少錢(上海快遞外賣電動自行車專用號牌辦理流程)
- 01 上海外國人社保強制的嗎(上海市外國人 社保)
- 01 上海塔聞貿易有限公司(東方明珠的具體資料)
- 01 上海外國人臨時住宿登記二維碼(上海60歲以上老人居住證滿一年以上怎么續辦?)
- 01 上海外國語初中排名(上海各區初中排名)
- 01 上海復旦大學附屬醫院買粉絲預約掛號(復旦大學附屬兒科醫院買粉絲買粉絲預約怎么簽到取號)
- 01 訂閱號登錄流程圖片介紹ppt(PPT 如何發到 買粉絲“訂閱號” 不是朋友圈!!是訂閱號!買粉絲圖文!!)
- 01 上海外賣電子牌照怎么破壞(上海外賣電子車牌用水煮可以)
热门文章
站长推荐
01 上海外賣騎手買粉絲群(上海一外賣騎手多次坐地起價索要跑腿費,最終得到了什么處罰?)
01 上海圣鷗貿易有限公司(東方明珠導游詞250字,不要太長,250到300字)
01 上海外國人聚集的街道(上海有哪些著名的街道)
01 上海外國人可以進事業單位(上海讓外國人進入事業單位有人舉報嗎)
01 上海塑繁貿易有限公司(pvc樹脂粉最新價格廠家推薦)
01 上海外賣電子牌照怎么申請(上海外賣電子牌照怎么避免處罰)
01 訂閱號登錄方法實現模擬登錄界面(怎么用電腦注冊買粉絲號)
01 上海復旦大學腫瘤醫院胸外科護士態度惡劣(有朋友在上海復旦腫瘤醫院開刀,作為朋友很焦急,想知道這個醫院病人術后允許親友探病嗎?(在線等))