最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis慢查詢日志及慢查詢分析詳解

 更新時間:2023年01月28日 14:50:45   作者:洛神灬殤  
這篇文章主要為大家介紹了Redis慢查詢日志及慢查詢分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前提介紹

本篇文章主要介紹了Redis的執(zhí)行的慢查詢的功能的查詢和配置功能,從而可以方便我們在實際工作中,進行分析Redis的性能運行狀況以及對應的優(yōu)化Redis性能的佐證和指標因素。

在我們5.0左右的版本中Redis使用單線程架構和I/O多路復用模型來實現(xiàn)高性能的內存數(shù)據(jù)服務。接下來主要分析Redis單線程命令處理機制,接著分析Redis單線程模型為什么性能如此之高。

單線程命令的處理機制

Redis客戶端與服務端的模型主要是下圖所示。

每次客戶端調用都經(jīng)歷了發(fā)送命令、執(zhí)行命令、返回結果三個過程。

本章內容

本章的文章內容主要是一下幾點。

什么是慢查詢

慢查詢就是當Redis在處理一條指令的時候,當超過了系統(tǒng)配置的執(zhí)行時間的閾值的時候,就會被系統(tǒng)當作慢查詢統(tǒng)計和判定。

慢查詢日志

慢查詢日志就是系統(tǒng)在命令執(zhí)行前后計算每條命令的執(zhí)行時間,當超過預設閾值,就將這條命令的相關信息(例如:發(fā)生時間、耗時、命令的詳細信息)記錄下來。

Redis慢查詢日志

Redis慢查詢日志功能是用于記錄執(zhí)行時間超過給定時長的命令請求,可以通過查看慢查詢日志來監(jiān)控和優(yōu)化查詢速度。

Redis慢查詢的危害

說到了Redis慢查詢的危害,就會先說一下Redis的運行機制。

Redis客戶端執(zhí)行一條命令的步驟

Redis是單線程來處理命令,所以一條命令從客戶端到達服務端不會立即被執(zhí)行,所有的命令都會進入一個隊列,然后逐個被執(zhí)行。

因此Redis服務端去執(zhí)行操作的是可以主要以下幾個步驟:

所有的指令都有先后順序,但是真正意義到達服務端的執(zhí)行順序也是不確定的,因為中間有網(wǎng)絡傳輸。但是可以肯定的是,不會有兩條命令被同時執(zhí)行,這樣就不會產(chǎn)生并發(fā)問題,這就是Redis單線程的基本模型。

慢查詢引發(fā)的問題

  • 單線程機制:所有命令放在一個隊列中
  • Redis執(zhí)行指令主要是在內存中執(zhí)行、非IO阻塞、避免線程切換和競態(tài)產(chǎn)生的消耗。

因為單線程的問題,一個命令不能執(zhí)行太長時間,不然會阻塞其他命令的執(zhí)行。所以慢查詢會造成整體的Redis服務的性能的下降以及CPU的耗時和負載變高。

注意:慢查詢只會記錄執(zhí)行命令的時間,沒有慢查詢并不代表客戶端沒有超時問題。

閾值和慢查詢的日志的設置

監(jiān)控Redis指令的慢查詢功能,需要明確兩件事:

  • 預設閾值怎么設置?
  • 慢查詢記錄存放在哪里?

針對于慢查詢的閾值,在Redis提供了slowlog-log-slower-thanslowlog-max-len配置來解決這兩個問題。

閾值參數(shù)設置

慢查詢執(zhí)行時間閾值

  • slowlog-log-slower-than:指定執(zhí)行時間超過多少微秒的命令會被記錄到日志上,它的單位是微妙(1秒=1000毫秒=1000000微秒),默認值10000。

例如,該值設為100,執(zhí)行了一條很慢的命令(例如 keys * ),如果它的執(zhí)行時間超過了100微秒,則這個命令會被記錄到慢查詢日志中。

慢查詢數(shù)據(jù)存儲閾值

慢查詢日志最多存儲多少條,并沒有說明存放在那里?主要通過slowlog-max-len進行控制和設置。從底層角度分析,Redis使用了一個列表來存儲慢查詢日志,slowlog-max-log就是列表的最大長度。

  • slowlog-max-len:指定服務器上最多保存慢查詢日志的條數(shù)。
    • slowlog-log-slower-than=0,那么系統(tǒng)會記錄所有的命令
    • slowlog-log-slower-than<0,那么對任何命令都不會記錄。

例如,該值設為5,那么命令執(zhí)行時間超過slowlog-log-slower-than設置的時間的命令會被記錄到慢查詢日志上,如果慢查詢日志的數(shù)量等于5,那么再添加慢查詢日志時,需要把最早添加的慢查詢日志刪除,即慢查詢日志刪除采用先進先出的方式。

慢查詢的配置類型和方式

Redis有兩種修改配置的方法:1. 修改配置文件;2. config set命令動態(tài)修改。

例如,使用config set命令將slowlog-log-slower-than設置為20000微秒,slowlog-max-len設置為10000:

config set slowlog-log-slower-than 20000
config set slowlog-max-len 10000
config rewrite

如果要Redis將配置持久化到本地配置文件,要執(zhí)行config rewrite命令,它會重寫配置文件。

慢查詢日志的操作命令

慢查詢日志的的查詢和維護主要是通過:slowlog get、slowlog len、slowlog reset這幾條命令。

slowlog get [n]

慢查詢日志有4個屬性組成:日志id、發(fā)生時間戳、命令耗時、執(zhí)行命令和參數(shù)。

127.0.0.1:6379> slowlog get
1) 1) (integer) 1
   2) (integer) 1513709400
   3) (integer) 11
   4) 1) "slowlog"
      2) "get"
2) 1) (integer) 0
   2) (integer) 1513709398
   3) (integer) 4
   4) 1) "config"
      2) "set"
      3) "slowlog-log-slower-than"
      4) "2"

slowlog len

獲取慢查詢日志列表當前的長度

127.0.0.1:6379&gt; slowlog len
(integer) 2

上面則說明當前的滿查詢列表中至于連個慢查詢日志。

slowlog reset

實際是對慢查詢日志列表做清理操作。

127.0.0.1:6379> slowlog len
(integer) 6
127.0.0.1:6379> slowlog reset
OK
127.0.0.1:6379> slowlog len
(integer) 1

為什么還有1個,因為閾值設的比較小,slowlog reset就屬于慢查詢。

以上就是Redis慢查詢日志及慢查詢分析詳解的詳細內容,更多關于Redis慢查詢日志分析的資料請關注腳本之家其它相關文章!

相關文章

  • Redis如何優(yōu)雅的刪除特定前綴key

    Redis如何優(yōu)雅的刪除特定前綴key

    這篇文章主要給大家介紹了關于Redis如何優(yōu)雅的刪除特定前綴key的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Redis分布式鎖實例分析講解

    Redis分布式鎖實例分析講解

    分布式鎖是控制分布式系統(tǒng)不同進程共同訪問共享資源的一種鎖的實現(xiàn)。如果不同的系統(tǒng)或同一個系統(tǒng)的不同主機之間共享了某個臨界資源,往往需要互斥來防止彼此干擾,以保證一致性
    2022-12-12
  • Redis中的數(shù)據(jù)結構跳表詳解

    Redis中的數(shù)據(jù)結構跳表詳解

    跳表是一種基于并聯(lián)的鏈表結構,用于在有序元素序列中快速查找元素的數(shù)據(jù)結構,本文給大家介紹Redis中的數(shù)據(jù)結構跳表,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Linux環(huán)境下升級redis的詳細步驟記錄

    Linux環(huán)境下升級redis的詳細步驟記錄

    這篇文章主要給大家介紹了關于Linux環(huán)境下升級redis的詳細步驟,描述了如何從舊版本升級到新版本Redis,包括備份舊數(shù)據(jù)、下載和安裝新版本、復制配置文件和數(shù)據(jù)、停止舊版本并啟動新版本的過程,需要的朋友可以參考下
    2024-12-12
  • Redis實現(xiàn)延遲隊列的項目示例

    Redis實現(xiàn)延遲隊列的項目示例

    延遲隊列是Redis的一個重要應用場景,本文主要介紹了Redis實現(xiàn)延遲隊列的項目示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Redis 的各項功能主要解決了什么問題

    Redis 的各項功能主要解決了什么問題

    Redis是一個基于BSD開源的項目,是一個把結構化的數(shù)據(jù)放在內存中的一個存儲系統(tǒng),你可以把它作為數(shù)據(jù)庫,緩存和消息中間件來使用。這篇文章主要介紹了Redis 的各項功能主要解決了什么問題,需要的朋友可以參考下
    2018-10-10
  • Redis讀寫分離搭建的完整步驟

    Redis讀寫分離搭建的完整步驟

    為滿足讀多寫少的業(yè)務場景.最大化節(jié)約用戶成本.云數(shù)據(jù)庫Redis版推出了讀寫分離規(guī)格,為用戶提供透明、高可用、高性能、高靈活的讀寫分離服務,這篇文章主要給大家介紹了關于Redis讀寫分離搭建的相關資料,需要的朋友可以參考下
    2021-09-09
  • Redis中的3種特殊數(shù)據(jù)結構詳解

    Redis中的3種特殊數(shù)據(jù)結構詳解

    在本文中,我們對三種特殊的數(shù)據(jù)類型進行了介紹,它們分別是geospatial(地理空間數(shù)據(jù)類型)、HyperLogLogs和Bitmaps(位圖),這些數(shù)據(jù)類型在不同的領域和應用中發(fā)揮著重要作用,并且具有各自獨特的特性和用途,對Redis特殊數(shù)據(jù)結構相關知識感興趣的朋友一起看看吧
    2024-02-02
  • redis實現(xiàn)計數(shù)器-防止刷單方法介紹

    redis實現(xiàn)計數(shù)器-防止刷單方法介紹

    本文主要向大家介紹了redis實現(xiàn)計數(shù)器防止刷單的方法和有關代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Redis實戰(zhàn)之百度首頁新聞熱榜的實現(xiàn)代碼

    Redis實戰(zhàn)之百度首頁新聞熱榜的實現(xiàn)代碼

    這篇文章主要介紹了Redis實戰(zhàn)之百度首頁新聞熱榜的實現(xiàn)代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論

聊城市| 栾城县| 广汉市| 青铜峡市| 河东区| 英山县| 涿鹿县| 昌邑市| 曲松县| 青冈县| 潢川县| 庆阳市| 济源市| 大邑县| 万全县| 黑龙江省| 祁东县| 白银市| 周宁县| 尉氏县| 平陆县| 桦川县| 秀山| 仪征市| 烟台市| 新巴尔虎右旗| 宝山区| 密山市| 台安县| 富源县| 康定县| 登封市| 正镶白旗| 扎鲁特旗| 武川县| 屯昌县| 林周县| 平乐县| 炎陵县| 庆安县| 贵港市|