溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何查看Redis Key資源占用情況

發(fā)布時(shí)間:2021-12-20 10:50:35 來源:億速云 閱讀:1751 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下如何查看Redis Key資源占用情況,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Redis 在日常的開發(fā)中,會積累大量的 Key,占用不少內(nèi)存空間。有時(shí)候,我們想知道當(dāng)前 Redis 里面有多少個(gè) Key,是哪個(gè) Key  占用了最大的內(nèi)存。

但是,我們知道,由于 Redis 是單線程數(shù)據(jù)庫,所以在線上環(huán)境是絕對禁止使用keys *這種命令的,因?yàn)樗鼤ㄙM(fèi)很長時(shí)間掃描所有的  Key,在這個(gè)過程中,Redis 會卡死,無法處理其他的讀寫操作。

那么,我們應(yīng)該怎么知道當(dāng)前有多少個(gè) Key  呢?有同學(xué)說可以使用scan命令。但這個(gè)命令一方面是需要寫程序來迭代,另一方面是它給出的結(jié)果可能是不準(zhǔn)確的。

也有同學(xué)會說,可以使用info keyspace命令,運(yùn)行效果如下圖所示:

如何查看Redis Key資源占用情況

確實(shí)可以看到有多少個(gè) Key。不過另一個(gè)問題是,怎么知道哪個(gè) Key 占用的內(nèi)存空間最大?

還有時(shí)候,Redis 里面可能有幾萬十幾萬個(gè) Key,里面有些 Key 是可以刪掉的。但是由于我們不能使用keys命令查看當(dāng)前有哪些  Key,所以不知道這些可以刪掉的 Key 竟然還在。

實(shí)際上,這些問題,我們使用一個(gè)叫做RDR[1]的工具,都可以解決。在 RDR 的 Github 上,可以找到對應(yīng)系統(tǒng)的可執(zhí)行文件。我們以 Linux  版本為例來進(jìn)行說明。Linux  版本的可執(zhí)行文件地址為:https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-linux,下載以后,賦予可執(zhí)行權(quán)限:

cd ~ wget https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-linux chmod +x rdr-linux

接下來,我們需要找到dump.rdb文件。

Redis 默認(rèn)開啟了RDB方式的持久化儲存。滿足一定條件時(shí),Redis 會把內(nèi)存中的數(shù)據(jù)存放到硬盤中,防止由于突然斷電導(dǎo)致數(shù)據(jù)丟失。默認(rèn)情況下,RDB  文件在/var/lib/redis/dump.rdb,這個(gè)文件只有 root 用戶可以讀取。

如果你現(xiàn)在不是 root 用戶,那么你可以把它復(fù)制出來,修改成當(dāng)前用戶,我的 Linux 系統(tǒng)當(dāng)前用戶名叫做 kingname,所在的用戶組也叫  kingname,所以可以執(zhí)行如下 shell 命令:

cd ~ sudo cp /var/lib/redis/dump.rdb ./ sudo chown kingname:kinganme dump.rdb

修改了用戶以后,現(xiàn)在我們讓 RDR 來讀取這個(gè)RDB 文件:

./rdr-linux show -p 8766 dump.rdb

運(yùn)行效果如下圖所示:

如何查看Redis Key資源占用情況

現(xiàn)在,打開瀏覽器,打開http://IP:8766,就可以看到當(dāng)前 Redis 的各個(gè) Key 的統(tǒng)計(jì)信息:

如何查看Redis Key資源占用情況

看完了這篇文章,相信你對“如何查看Redis Key資源占用情況”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI