首頁  >  文章  >  資料庫  >  Redis中什麼是慢查詢、訂閱模式

Redis中什麼是慢查詢、訂閱模式

青灯夜游
青灯夜游轉載
2021-11-15 10:50:571447瀏覽

這篇文章跟大家介紹一下Redis中的慢查詢和訂閱模式,希望對大家有幫助!

Redis中什麼是慢查詢、訂閱模式

慢查詢

慢查詢日誌就是系統在指令執行時每個指令的執行時間,當超過閥值,就將這條命令記錄下來。 【相關推薦:Redis影片教學

Redis指令執行流程

Redis中什麼是慢查詢、訂閱模式

  • # #發送命令

  • 命令排隊

  • 命令執行

其中指令執行才是慢查詢統計的時間

#慢查詢兩個設定參數Redis中什麼是慢查詢、訂閱模式

slowlog-log -slower-than:預設閥值,單位是毫秒,假如執行一條「很慢」的指令,執行時間超過閥值就會被記錄下來

  • slowlog-max- len:設定慢查詢日誌最多儲存多少條

Redis中什麼是慢查詢、訂閱模式

    發布訂閱模式
Redis提供了發布訂閱功能,可以用於訊息的傳輸,Redis的發布訂閱機制包括三個部分,發布者,訂閱者和Channel。

Redis中什麼是慢查詢、訂閱模式

  • 發布訂閱功能

Redis中什麼是慢查詢、訂閱模式

#發送訊息採用publish指令

  • 訂閱某個頻道採用subscribe指令訂閱

#模式比對:同時訂閱多個頻道,指令為PSUBSCRIBE

Redis過期時間處理

#主動處理

定時處理,在設定過期時間的時候創建一個定時器,當過期時間到的時候立刻執行刪除操作,這個操作是即時的,不管在這個時間段內有多少過期Key,也不管伺服器運行情況,都會被刪除,對CPU不是很友善。

定期刪除,定期刪除是設定一個時間間隔每個時間段都會偵測是否有過期鍵,如果有就執行刪除,

被動處理

當已經過期的key再次被訪問時,才會對key是否過期進行判斷,如果已經過期,則進行刪除,並返回NIL.這種處理方式對CPU是友好的,不會對其他過期key上佔用CPU,但對記憶體不友好,一個key已經過期,但是在它被操作前都不會被刪除,仍然佔用記憶體空間,如果有大量過期Key沒有被再次操作,則會浪費大量記憶體空間。

3.RDB與AOF對過期鍵的處理

如果在執行save或bgsave指令建立一個RDB時,程式會對資料庫中的鍵進行檢查,已過期的鍵不會被儲存到新建立的RDB檔案。

當過期鍵被惰性刪除或定期刪除之後,程式會向AOF檔追加(append)一條DEL指令,來明確地記錄該鍵已被刪除。

在執行AOF重寫的過程中,程式會對資料庫中的鍵進行檢查,已過期的鍵不會被儲存到重寫的AOF檔中。

###記憶體回收#########noeviction:預設策略,不會刪除任何數據,拒絕所有寫入操作並返回客戶端錯誤訊息,此時Redis只響應讀取操作。 ######volatitle-rlu:根據LRU演算法刪除設定了超時屬性的鍵,知道騰出足夠空間為止。如果沒有可刪除的鍵對象,回退到noeviction策略。 ######allkeys-lru:根據LRU演算法刪除鍵,不管資料有沒有設定超時屬性,直到騰出足夠空間為止。 ######allkeys-random:隨機刪除所有按鍵,知道騰出足夠空間為止。 ######volatitle-random:隨機刪除過期鍵,知道騰出足夠空間為止。 ######volatitle-ttl:根據鍵值物件的ttl屬性,刪除最近將要過期資料。如果沒有,回退到noeviction策略######更多程式相關知識,請造訪:###程式設計入門###! ! ###

以上是Redis中什麼是慢查詢、訂閱模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除