使用 monitor 命令查看 redis 请求日志
monitor日志要實(shí)時拿
???? redis 是一個高性能、使用方便的非關(guān)系型數(shù)據(jù)庫,我們在使用 redis 時,基本只需要關(guān)注存數(shù)據(jù),取數(shù)據(jù)的功能,即 set,get,非常適合用作緩存服務(wù)器,降低后端數(shù)據(jù)庫壓力。有時,想確認(rèn)下數(shù)據(jù)是否是從 redis 里讀的,以及 redis 是怎么取得數(shù)據(jù),這時就可以使用 monitor 功能了。
??? 一個典型的功能場景:前臺用戶請求一條數(shù)據(jù),后端拿到用戶 id 后,在 redis 緩存中查找該用戶數(shù)據(jù),沒有找到,于是從 db 中拿,找到后,返回給前臺,并在 redis 里存放該用戶的數(shù)據(jù),下次有請求后,就可以直接從 redis 里拿,返回給前臺,怎么確認(rèn)數(shù)據(jù)是從 redis 里取的?當(dāng)然,如果數(shù)據(jù)量大,查詢時又沒索引,從數(shù)據(jù)庫里取,和從 redis 里取的時間消耗是不一樣的。從時間消耗上,就基本可以判斷數(shù)據(jù)是從哪里取的。但如果數(shù)據(jù)量不大,無法從時間消耗上判斷,就需要查看 redis 的請求日志,要注意的是,單純從 redis.conf 中配置 logfile,loglevel 選項(xiàng),是看不到 redis 請求和操作日志的,打印的都是些無關(guān)緊要的信息,這時可以用 monitor 命令來完成。
使用方法:
登錄 redis-cli 命令行,輸入monitor,即可進(jìn)入到 redis 監(jiān)控模式。
隨后即可看到,當(dāng)有請求時,redis 具體都做了什么,我們另外打開一個 redis-cli,隨便插入一條數(shù)據(jù),比如set "hello" "world",monitor 監(jiān)控到
redis-monitor
再模擬下上面的那個用戶請求數(shù)據(jù)的功能場景:
首次運(yùn)行后,對應(yīng)到 redis 的監(jiān)控如下,可以看到,redis 里沒有找到,然后從 mysql 中查找,并做了 set 操作將信息存起來,再次運(yùn)行后,發(fā)現(xiàn) redis 里存在,因此直接從 redis 里 get 數(shù)據(jù)。
redis請求日志
可見,monitor 命令可以讓我們清楚的看到 redis 是怎么處理每個請求的,這對于調(diào)試階段非常方便。
當(dāng)然,為了演示,上面只是一個簡單的例子,并沒有考慮連接性能問題,實(shí)際上,使用 monitor 是會降低 redis 的性能的,適合開發(fā)調(diào)試使用。上述例子也沒有考慮數(shù)據(jù)更新,比如用戶是做一個更新或者刪除操作,則相應(yīng)的也要把 redis 里的信息也同步更新。
https://xujimmy.com/2017/12/13/redis-request-log.html
來源:https://blog.csdn.net/qq397728312/article/details/86290448
總結(jié)
以上是生活随笔為你收集整理的使用 monitor 命令查看 redis 请求日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基金分红后净值下降可以买吗
- 下一篇: redis-查看日志