您好,登錄后才能下訂單哦!
這篇文章主要講解了“Redis中慢查詢和訂閱模式是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Redis中慢查詢和訂閱模式是什么”吧!
慢查詢?nèi)罩揪褪窍到y(tǒng)在命令執(zhí)行時每條命令的執(zhí)行時間,當超過閥值,就將這條命令記錄下來。【
發(fā)送命令
命令排隊
命令執(zhí)行
返回結(jié)果
其中命令執(zhí)行才是慢查詢統(tǒng)計的時間
slowlog-log-slower-than:預設(shè)閥值,單位是毫秒,假如執(zhí)行一條“很慢”的命令,執(zhí)行時間超過閥值就會被記錄下來
slowlog-max-len:設(shè)置慢查詢?nèi)罩咀疃啻鎯Χ嗌贄l
Redis提供了發(fā)布訂閱功能,可以用于消息的傳輸,Redis的發(fā)布訂閱機制包括三個部分,發(fā)布者,訂閱者和Channel。
發(fā)送消息采用publish命令
訂閱某個頻道采用subscribe命令訂閱
模式匹配:同時訂閱多個頻道,命令是PSUBSCRIBE
主動處理
定時處理,在設(shè)置過期時間的時候創(chuàng)建一個定時器,當過期時間到的時候立馬執(zhí)行刪除操作,這個操作是即時的,不管在這個時間段內(nèi)有多少過期Key,也不管服務器運行情況,都會被刪除,對CPU不是很友好。
定期刪除,定期刪除是設(shè)置一個時間間隔每個時間段都會檢測是否有過期鍵,如果有就執(zhí)行刪除,
被動處理
當已經(jīng)過期的key再次被訪問時,才會對key是否過期進行判斷,如果已經(jīng)過期,則進行刪除,并返回NIL.這種處理方式對CPU是友好的,不會對其他過期key上占用CPU,但對內(nèi)存不友好,一個key已經(jīng)過期,但是在它被操作前都不會被刪除,仍然占用內(nèi)存空間,如果有大量過期Key沒有被再次操作,則會浪費大量內(nèi)存空間。
3.RDB與AOF對過期鍵的處理
如果在執(zhí)行save或者bgsave命令創(chuàng)建一個RDB時,程序會對數(shù)據(jù)庫中的鍵進行檢查,已過期的鍵不會被保存到新創(chuàng)建的RDB文件中。
當過期鍵被惰性刪除或者定期刪除之后,程序會向AOF文件追加(append)一條DEL命令,來顯式地記錄該鍵已被刪除。
在執(zhí)行AOF重寫的過程中,程序會對數(shù)據(jù)庫中的鍵進行檢查,已過期的鍵不會被保存到重寫后的AOF文件中。
noeviction:默認策略,不會刪除任何數(shù)據(jù),拒絕所有寫入操作并返回客戶端錯誤信息,此時Redis只響應讀操作。
volatitle-rlu:根據(jù)LRU算法刪除設(shè)置了超時屬性的鍵,知道騰出足夠空間為止。如果沒有可刪除的鍵對象,回退到noeviction策略。
allkeys-lru:根據(jù)LRU算法刪除鍵,不管數(shù)據(jù)有沒有設(shè)置超時屬性,直到騰出足夠空間為止。
allkeys-random:隨機刪除所有鍵,知道騰出足夠空間為止。
volatitle-random:隨機刪除過期鍵,知道騰出足夠空間為止。
volatitle-ttl:根據(jù)鍵值對象的ttl屬性,刪除最近將要過期數(shù)據(jù)。如果沒有,回退到noeviction策略
感謝各位的閱讀,以上就是“Redis中慢查詢和訂閱模式是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Redis中慢查詢和訂閱模式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。