redis 筆記06 發布與訂閱、事務、慢查詢日志、監視器

發布與訂閱

1. 服務器狀態在pubsub_channels字典保存了所有頻道的訂閱關系:SUBSCRIBE命令負責將客戶端和被訂閱的頻道關聯到這個字典里面,而UNSUBSCRIBE命令則負責

? ? 解除客戶端和被退訂頻道之間的關聯。

2. 服務器狀態在pubsub_patterns鏈表保存了所有模式的訂閱關系:PSUBSCRIBLE命令負責將客戶端和被訂閱的模式記錄到這個鏈表中,而PUNSBUSCRIBLE命令則負

? ? 責移除客戶端和被退訂模式在鏈表中的記錄。

3. PUBLISH命令通過訪問pubsub_channels字典來向頻道的所有訂閱者發送消息,通過訪問pubsub_patterns鏈表來向所有匹配頻道的模式的訂閱者發消息。

4. PUBSUB命令的三個子命令都是通過讀取pubsub_channels字典和pubsub_patterns鏈表中的信息來實現的。

5. 鏈表統一來管理訂閱者。

?

?

事務

1. 事務提供了一種將多個命令打包,然后一次性、有序執行的機制

2. 多個命令被入隊到事務隊列中,然后按先進先出的順序執行

3. 事務在執行過程中不會被中斷,當事務隊列中的所有命令都被執行完畢之后,事務才會結束。

4. 帶有WATCH命令的事務會將客戶端和被監控的鍵在數據庫的watch_keys字典中進行關聯,當鍵被修改時,程序會將所有監視被修改鍵的客戶端的REDIS_DIRTY_CAS標志打開。

5. 只有在客戶端的REDIS_IDRTY_CAS標志未被打開時,服務器才會執行客戶端提交的事務,否則的話,服務器將拒絕執行客戶端提交的事務。

6. Redis事務總是具有ACID中的原子性、一致性和隔離性,當服務器運行在AOF持久化模式下,并且appendfsync選項值為always時,事務也具有耐久性。

7. Redis通過MULTI、EXEC、WATCH等命令來實現事務功能。事務提供了一種將多個命令請求打包,然后一次性、按順序地執行多個命令的機制,并且在事務執行期間,服務器

? ? 不會中斷事務而去執行其他客戶端請求,它會將事務中的所有命令都執行完。然后才會去處理其他客戶端的命令請求。

8. 一個事務從開始到結束通常會經歷一下三個階段:

? ? 1). 事務開始:MULTI

? ? 2). 命令入隊:

? ? 3). 事務執行:EXEC

9. 客戶端切換到事務狀態后,服務器會根據這個客戶端發來的不同命令執行不同的操作:

? ? 1). 如果發的命令為:EXEC、DISCARD 、WATCH 、MULTI 四個命令中的一個,那么服務器立即執行這個命令

? ? 2). 如果不是上面幾條命令,那么服務器并不會立即執行這個命令,而是將這個命令放入一個事務隊列中,然后向客戶端返回QUEUED回復。

10. WATCH命令是一個樂觀鎖,他可以在EXEC命令執行之前,監視任意數量的數據庫鍵,并在EXEC命令執行時,檢查被監視的鍵是否至少有一個已經被修改過了,如果是的話,服務器將拒絕執行事務。

? ? ? 并向客戶端返回代表事務執行失敗的空回復。

11. 監視機制的觸發:為被監視的鍵設置一個屬性值,當被監視的鍵被修改時,改變屬性,標記該鍵已被修改。事務執行前,檢查該屬性值。(思想)

12. Redis 不支持事務回滾機制,即使事務隊列中的某個命令在執行期間出現了錯誤,整個事務也會繼續執行下去,直到將事務隊列中的所有命令都執行完畢為止。

13. ACID :?

? ? ? 原子性(Atomicity):數據庫將事務中的多個操作當做一個整體來執行,服務器要么執行事務中所有的操作,要么就一個操作都不執行。Redis事務是原子性的,但不保證所有執行命令都成功。

? ? ? 一致性(Consistency) : 如果數據庫在執行事務之前是一致的,那么在事務執行之后,無論事務是否執行成功,數據庫也應該仍然是一致的。

? ? ? 隔離性(Isolation): 即使數據庫有多個事務并發執行,各個事務之間也不會互相影響,并且在并發狀態下執行的事務和串行執行的事務產生的結果完全相同。Redis使用單線程的方式來執行事務。

? ? ? 持久性(Durability):當一個事務執行完畢時,執行這個事務所得的結果已經被保存到永久性介質(比如磁盤)里面了,即使服務器在事務執行完畢之后停機,執行事務所得的結果也不會丟失。

?

?

慢查詢日志

1. Redis的慢查詢日志功能用于記錄執行時間超過指定時長的命令。用戶可以通過這個功能產生的日志來監控和優化查詢速度。

2. Redis服務器將所有的慢查詢日志保存在服務器狀態的slowlog鏈表中,每個鏈表節點都包含了一個slowlogEntry結構,每個slowlogEntry結構代表一個慢查詢日志。

3. 打印和刪除慢查詢日志可以通過遍歷slowlog鏈表來完成。

4. slowlog鏈表的長度就是服務器所保存慢查詢日志的數量。

5. 新的慢查詢日志會被添加到slowlog鏈表的表頭,如果日志的數量超過slowlog-max-len選項的值,那么多出來的日志會被刪除。

6. 服務器配置有兩個和慢查詢日志相關的選項:

? ? 1). slowlog-log-slower-than選項指定執行時間超過多少微秒的命令請求會被記錄到日志上。

? ? 2). slowlog-max-len選項指定服務器最多保存多少條慢查詢日志。服務器使用先進先出的方式保存多條慢查詢日志,當服務器存儲的慢查詢日志數量等于slowlog-max-len選項的值時,服務器在添加

? ? ? ? ?一條新日志前,會現將舊的一條慢查詢日志刪除。

7. 使用SLOWLOG GET 命令查看服務器所保存的慢查詢日志

8. 添加新日志:在每次執行命令之前和之后,程序都會記錄微秒格式的UNIX時間戳,這兩個時間戳之間的差就是服務器執行命令所耗費的時長,服務器根據這個時長決定是否保存這條查詢日志。

?

?

監視器:

1. 客戶端通過執行MONITOR命令,將客戶端轉換成監視器,接收并打印服務器處理每個命令請求的相關信息。

2. 當一個客戶端從普通客戶端變成監視器時,該客戶端的REDIS_MONITOR標識會被打開。

3. 服務器將所有監視器都記錄在monitors鏈表中。

4. 每次處理命令請求時,服務器都會遍歷monitors鏈表,將相關信息發送給監視器。

?

轉載于:https://www.cnblogs.com/Jtianlin/p/5119750.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257835.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257835.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257835.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html中文段落,HTML 段落-JavaScript中文網-JavaScript教程資源分享門戶

HTML 可以將文檔分割為若干段落。HTML 段落段落是通過 標簽定義的。實例這是一個段落 這是另一個段落嘗試一下 注意:瀏覽器會自動地在段落的前后添加空行。( 是塊級元素)不要忘記結束標簽即使忘了使用結束標簽,大多數瀏覽器也會正確地將 HTML 顯示出來&a…

自學python系列14:映像,集合類型-集合類型

集合類型1.1如何創建集合類型和給集合賦值1.1.1 如何創建集合類型和給集合賦值集合的工廠方法set()和frozenset()>>> sset(abc)>>> sset([a, c, b])>>> tfrozenset(abc)>>> tfrozenset([a, c, b])len()計算的是集合的字母的個數1.1.2如何訪…

觀點:我們為什么需要威脅情報?

最近被談論的異常火熱的一個術語就是威脅情報,那么威脅情報到底是什么意思,它是一種什么概念或者機制呢?本文中我們就來親密接觸一下威脅情報,并了解它所具有的功能,然后給出幾個威脅情報的最佳實踐示例,最后分析威脅…

vijos 1942 [AH 2005] 小島

描述 西伯利亞北部的寒地,坐落著由 N 個小島組成的島嶼群,我們把這些小島依次編號為 1 到 N 。 起初,島嶼之間沒有任何的航線。后來隨著交通的發展,逐漸出現了一些連通兩座小島的航線。例如增加一條在 u 號小島與 v 號小島之間的航…

聊城大學計算機應用基礎函授,聊城大學試題計算機應用基礎試題

姓名 年級專業層次 教學單位密封線 第1頁 共3頁聊城大學《計算機應用基礎》函授試題一、判斷題(共10題,每題2分,共20分)1、信息按狀態劃分可以劃分為動態信息和靜態信息。( √ )2、操作系統不具有通用性。( )3、在Windows XP環境中,整個顯示…

Struts2中 Path (getContextPath與basePath)

struts2中的路徑問題是根據action的路徑而不是jsp路徑來確定,所以盡量不要使用相對路徑。 雖然可以用redirect方式解決,但redirect方式并非必要。解決辦法非常簡單,統一使用絕對路徑。(在jsp中用request.getContextpath方式來拿到…

(七)SpringBoot+SpringCloud —— 集成斷路器

2019獨角獸企業重金招聘Python工程師標準>>> 斷路器簡介 在一個項目中,系統可能被拆分成多個服務,例如用戶、訂單和庫存等。 這里存在這服務調用服務的情況,例如,客戶端調用訂單服務,訂單服務又調用庫存服務…

Java反射機制的使用方法

Java的反射機制同意你在程序執行的過程中獲取類定義的細節。有時候在程序執行的時候才得知要調用哪個方法,這時候反射機制就派上用場了。獲取類 類的獲取方法有下面幾種:forName()。通過Class.forName()獲取與字符串向相應的類。比方\lstinline{Class.fo…

銀行計算機設備日常檢查表,[計算機]201154安全檢查表.doc

[計算機]201154安全檢查表土建基礎框架施工檢查表編號:2011-03-01-11工程名稱鑄造車間檢查時間2011 年 月 日檢查部位基礎施工檢 查 人檢 查結 論百分制折合分數:需要整改共 條。受檢單位河南周口受檢責任人檢 查 內 容檢查項目檢查內容和安全文明施工要…

我為什么要寫FansUnion個人官網-BriefCMS-電子商務malling等系統

不少朋友一直關注我最近幾個月,已經做的和正在做的項目,比如個人官網、BriefCMS、電子上午malling等系統。但是呢,部分朋友比較好奇,為啥要去寫。他們比較疑惑的是,市面上已經有很多類似的系統了,甚至有部分…

Node開發文件上傳系統及向七牛云存儲和亞馬遜AWS S3的文件上傳

背景起,有奏樂: 有偉人曰:學習技能的最好途徑莫過于理論與實踐相結合。 初學Node這貨時,每每讀教程必會Fall asleep。 當真要開發系統時,頓覺精神百倍,即便踩坑無數也不失斗志。 因為同團隊的小伙伴們都在辛…

計算機學業水平考試及格,信息技術學業水平考試表格部分試題(帶答案)

第三章表格信息的加工與表達復習學案【學習目標】1.熟練使用excel加工表格信息,理解用圖表來表現信息的特點與意義,2.能根據表格數據關系選擇合適的圖表類型表達意圖。【考點】1.表格中常用的函數及其求值方法;2.根據數據選擇合適的圖表類型&…

Ok6410掛載NFS

虛擬機: apt-get install portmap apt-get install nfs-kernel-server mkdir /nfs/root/mNFS chmod 777 /nfs chmod 777 /nfs/root vi /etc/exports 添加:/nfs/root *(rw,sync,no_root_squash) 開發板: mount -t nfs 192.168.0.12…

云計算:容器技術變革云計算,SaaS帶動CaaS市場

報告摘要: 1、容器技術增速驚人,市場認可度提高 虛擬化是云計算的重要基礎,Docker定義了一套容器從構建到執行的標準化體系,改變了傳統的虛擬化技術,深度影響了云計算領域。 隨著谷歌、亞馬遜、微軟等云計算廠商紛紛加…

Jan 12 - Delete Node in a Linked List; Data Structure; Linked List; Pointer;

代碼: /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ public class Solution {public void deleteNode(ListNode node) {if(node null) return;while(node.next ! …

三年級神奇電子計算機教案,人教版小學三年級下冊信息技術教案

人教版小學三年級下冊信息技術教案 人教版小學信息技術教案第一課 神奇的信息世界教學目的:通過學習使學生更充分地了解信息技術在生活中的應用。教學內容:觀看“神奇的信息世界”光碟教學準備:1、調試每臺計算機 2、打開計算機并由教師機控制…

spark 安裝配置

最佳參考鏈接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhuang.html Apache Spark1.1.0部署與開發環境搭建   Spark是Apache公司推出的一種基于Hadoop Distributed File System(HDFS)的并行計算架構。與MapReduce不同&am…

《大數據原理:復雜信息的準備、共享和分析》一一2.5 在標識符中嵌入信息:不推薦...

2.5 在標識符中嵌入信息:不推薦大多數標識符不是純粹的隨機數,它們通常含有一些可由熟悉標識系統的人解釋的嵌入信息。例如,標識符中可以嵌入姓的前三個字母,同樣,標識符中也可以嵌入出生年份的最后兩位數字。標識符中…

python基礎知識-列表,元組,字典

列表(list) 賦值方法: l [11,45,67,34,89,23] l list() 列表的方法: 1 #!/usr/bin/env python2 3 class list(object):4 """5 list() -> new empty list6 list(iterable) -> new list initial…

車站計算機聯鎖系統的仿真設計,車站計算機聯鎖仿真設計.doc

車站計算機聯鎖仿真設計2012 屆 交通運輸 學院專 業學 號 2008學生姓名指導教師完成日期 2012年 月日計算機聯鎖是保證車站內列車和調車作業安全,提高車站通過能力的一種信號設備。設計以沙盤模型為根據,練習制作聯鎖信號圖表,使用Visual Bas…