本申請屬于計算機,尤其涉及一種redis鍵內存使用監控方法、裝置、設備及存儲介質。
背景技術:
1、現在很多大型互聯網系統都會選擇redis作為緩存服務器來使用,其高效的性能,簡單易用鍵值對設計確實能夠幫助研發做出更好的技術設計方案。
2、但是在開發過程中也可能會存在一些設計缺陷,一些鍵(key)的設計不合理,長時間運行就會導致占用大量的內存空間,從而讓redis查詢效率下降,導致業務異常。所以,除了對redis實例本身進行監控之外,如何高效的對redis中的鍵進行監控也成為了目前越來越關注的點。
技術實現思路
1、本申請實施例提供一種redis鍵內存使用監控方法、裝置、設備及存儲介質,能夠實現對鍵內存使用情況的監控,從而提高redis查詢效率。
2、第一方面,本申請實施例提供一種redis鍵內存使用監控方法、裝置、設備及存儲介質,redis鍵內存使用監控方法包括:獲取redis的多個數據庫的信息;對多個數據庫進行遍歷,得到多個鍵的名稱信息;根據鍵的名稱信息,遍歷鍵,得到未設置過期時間的鍵的數量、鍵的過期時間和鍵的內存占用信息中的至少一者;輸出監控報告,監控報告包括未設置過期時間的鍵的數量、鍵的過期時間和鍵的內存占用信息中的至少一者。
3、根據本申請第一方面的實施方式,根據鍵的名稱信息,遍歷鍵,得到鍵的過期時間和鍵的內存占用信息,包括:根據預設的名稱前綴參數和鍵的名稱信息,對鍵進行分組,名稱前綴參數用于表征鍵的分組信息;以組為單位,計算鍵的平均過期時間和總內存占用信息;監控報告包括每組未設置過期時間的鍵的數量、每組鍵的平均過期時間和每組鍵的總內存占用信息中的至少一者。
4、根據本申請第一方面前述任一實施方式,根據預設的名稱前綴參數和鍵的名稱信息,對鍵進行分組,包括:依次判斷鍵的名稱信息是否符合目標名稱前綴參數;在判斷鍵的名稱信息符合目標名稱前綴參數的情況下,將符合要求的鍵輸入至目標數據結構,目標數據結構與目標名稱前綴參數一一對應,每個目標數據結構為一組。
5、根據本申請第一方面前述任一實施方式,在輸出監控報告之前,redis鍵內存使用監控方法還包括:根據名稱前綴參數設置查詢條件,查詢條件包括查詢所有的鍵或查詢符合目標名稱前綴參數的鍵;輸出監控報告,包括:根據查詢條件,輸出監控報告;在查詢條件為查詢所有的鍵的情況下,輸出總的未設置過期時間的鍵的數量、每一個鍵的過期時間和每一個鍵的內存占用信息中的至少一者;在查詢條件為查詢符合目標名稱前綴參數的鍵的情況下,輸出目標名稱前綴參數所屬組的未設置過期時間的鍵的數量、鍵的平均過期時間和鍵的總內存占用信息中的至少一者。
6、根據本申請第一方面前述任一實施方式,在獲取redis的多個數據庫的信息之前,redis鍵內存使用監控方法還包括:根據服務端ip端口信息,將redis的客戶端連接至服務端。
7、根據本申請第一方面前述任一實施方式,在對多個數據庫進行遍歷,得到多個鍵的名稱信息之前,redis鍵內存使用監控方法還包括:對每個數據庫的信息進行掃描,得到多個目標數據庫,目標數據庫包含鍵和目標索引;對多個數據庫進行遍歷,得到多個鍵的名稱信息,包括:根據目標索引,遍歷目標數據庫,得到多個鍵的名稱信息。
8、第二方面,本申請實施例提供了一種redis鍵內存使用監控裝置,redis鍵內存使用監控裝置包括:獲取模塊,用于獲取redis的多個數據庫的信息;第一遍歷模塊,用于對多個數據庫進行遍歷,得到多個鍵的名稱信息;第二遍歷模塊,用于根據鍵的名稱信息,遍歷鍵,得到未設置過期時間的鍵的數量、鍵的過期時間和鍵的內存占用信息中的至少一者;輸出模塊,用于輸出監控報告,監控報告包括未設置過期時間的鍵的數量、鍵的過期時間和鍵的內存占用信息中的至少一者。
9、第三方面,本申請實施例提供了一種電子設備,電子設備包括:處理器以及存儲有計算機程序指令的存儲器;處理器執行計算機程序指令時實現如第一方面任一實施例的redis鍵內存使用監控方法。
10、第四方面,本申請實施例提供了一種計算機可讀存儲介質,計算機可讀存儲介質上存儲有計算機程序指令,計算機程序指令被處理器執行時實現如第一方面任一實施例的redis鍵內存使用監控方法。
11、第五方面,本申請實施例提供了一種計算機程序產品,其特征在于,計算機程序產品中的指令由電子設備的處理器執行時,使得電子設備執行如第一方面任一實施例的redis鍵內存使用監控方法。
12、本申請實施例的redis鍵內存使用監控方法、裝置、設備及存儲介質。通過對redis的多個數據庫進行遍歷,得到多個鍵(key)的名稱信息,并根據鍵的名稱信息,遍歷鍵,得到未設置過期時間的鍵的數量、鍵的平均過期時間和鍵的總內存占用信息中的至少一者,實現了對鍵內存使用情況的監控,從而提高redis查詢效率。
1.一種redis鍵內存使用監控方法,其特征在于,包括:
2.根據權利要求1所述的redis鍵內存使用監控方法,其特征在于,所述根據所述鍵的名稱信息,遍歷鍵,得到鍵的過期時間和鍵的內存占用信息,包括:
3.根據權利要求2所述的redis鍵內存使用監控方法,其特征在于,所述根據預設的名稱前綴參數和所述鍵的名稱信息,對鍵進行分組,包括:
4.根據權利要求3所述的redis鍵內存使用監控方法,其特征在于,在所述輸出監控報告之前,所述方法還包括:
5.根據權利要求1所述的redis鍵內存使用監控方法,其特征在于,在所述獲取redis的多個數據庫的信息之前,所述方法還包括:
6.根據權利要求1所述的redis鍵內存使用監控方法,其特征在于,在所述對所述多個數據庫進行遍歷,得到多個鍵的名稱信息之前,所述方法還包括:
7.一種redis鍵內存使用監控裝置,其特征在于,所述裝置包括:
8.一種電子設備,其特征在于,所述電子設備包括:處理器以及存儲有計算機程序指令的存儲器;
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現如權利要求1-6任意一項所述的redis鍵內存使用監控方法。
10.一種計算機程序產品,其特征在于,所述計算機程序產品中的指令由電子設備的處理器執行時,使得所述電子設備執行如權利要求1-6任意一項所述的redis鍵內存使用監控方法。