02 redis的發布訂閱(Redis發布訂閱和Stream)

时间:2024-05-18 03:28:54 编辑: 来源:

實現了消息隊列所需要的所有功能,包括:

同時需要注意的是Stream只是一個數據結構,他不會主動把消息推送給消費者,需要消費者主動來消費數據 。

每個Stream都有唯一的名稱,它就是Redis的key,首次使用 xadd 指令追加消息時自動創建。

常見操作命令如下表:

如果客戶端希望知道自身消費到第幾條數據了,那么就需要記錄一下當前消費的消息ID,下次再次消費的時候就從上次消費的消息ID開始讀取數據即可。

消費組中多了一個游標 last_delivered_id ,表示當前消費到了哪一條數據。同時所有的數據都是待處理消息( PEL ),只有消費者處理完畢之后使用 ack 指令告知redis服務器,數據才會從 PEL 中移除,確認后的消息就無法再次消費。

如果接收到的消息比較多,為了避免Stream過長,可以選擇指定Stream的最大長度,一旦到達了最大長度,就會從最早的消息開始清除,保證Stream中最新的消息。

spring-redis 發布訂閱模式:發布一條消息收到了兩條,重復監聽

當你看到這個文章時,想必已經了解了一些關于spring-redis發布訂閱方面的知識,如果你也遇到同樣的問題

那么請考慮spring在啟動時有沒有重復的加載配置文件

具體的方式可以在 AbstractApplicationContext 的 refresh() 方法中打斷點,如果走了兩次,說明配置文件加載了兩遍

而配置文件加載兩遍的原因是因為web.xml中DispatcherServlet和ContextLoaderLinistener 共用了 某些配置文件導致的。

redis頻道收到發布者信息后可以只推信息給一個訂閱者嗎

Redis 的 SUBSCRIBE 命令可以讓客戶端訂閱任意數量的頻道, 每當有新信息發送到被訂閱的頻道時, 信息就會被發送給所有訂閱指定頻道的客戶端。

作為例子, 下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關系:

《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/

如何在SQLServer2000中配置發布、分發和訂閱服務

5.0 文檔說明

除可用的新功能之外,本節還包含運行 SP3 時可能發生的問題。這些問題可能發生在從 SQL Server 2000、SQL Server 2000 SP1 或 SQL Server 2000 SP2 運行 Service Pack 進行升級的情況下。本節未描述 SP3 中提供的所有修補程序。要查看這些修補程序的完整列表,請參見 Microsoft 知識庫文章 306908。

本節中的 Analysis Services 和 Meta Data Services 部分不適用于僅 Desktop Engine 安裝。

本自述文件中未能及時提供的 SQL Server 2000 Service Pack 3 相關信息,將在 Microsoft 知識庫文章 330022 中提供。該文章可以在 Microsoft 產品技術支持服務知識庫中找到。

5.1 數據庫引擎和 Desktop Engine 增強功能

下列增強功能適用于安裝 Database Components SP3 的 SQL Server 2000 實例。也適用于安裝 Desktop Engine SP3 的 Desktop Engine 實例。

5.1.1 在 Database Components SP3 中使用中文、日語或朝鮮語字符

在 SP1 中引入

如果在運行 Windows NT 4.0 的服務器或 Windows 98 上安裝了 Database Components SP3 之后再升級到 Windows 2000,Windows 2000 升級過程將替換某些系統文件。在對中文、日語或朝鮮語字符排序時,需要使用這些系統文件。如果在 SQL Server 數據庫中使用中文、日語或朝鮮語字符,在升級到 Windows 2000 后,需重新運行 SP3 附帶的 Sqlredis.exe。有關運行 Sqlredis.exe 的更多信息,請參見 4.2 再發布 SP3 數據訪問組件。

說明 如果客戶機或服務器上沒有含中文、日語或朝鮮語字符的數據庫,則無需重新應用 Sqlredis.exe。

5.1.2 散列組已刪除

在 SP1 中引入

散列組 (hash teams) 已刪除。由于 SQL Server 2000 中的改進,使用散列組已不能獲得它們在 SQL Server 7.0 中所提供的性能好處。而且,刪除散列組使得 SQL Server 2000 更加穩定。

因此,查詢優化器不再用散列組生成查詢計劃。

在極個別的情況下,刪除散列組可能會使查詢的處理速度減慢。請分析這類查詢并確定創建更適合的索引是否能使查詢性能恢復到以前的水平。

5.1.3 添加的 Affinity Mask 開關

在 SP1 中引入

此 Service Pack 添加了兩個 Affinity Mask 開關。

Affinity Mask I/O 開關

Affinity Mask 連接開關

詳細內容參見

買粉絲://bbs.買粉絲acc.買粉絲/showprint.asp?topic_id=213968&forum_id=39

搜索关键词: