最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于redis key占用內(nèi)存量分析

 更新時(shí)間:2020年11月24日 17:04:33   作者:4kgurbby  
這篇文章主要介紹了基于redis key占用內(nèi)存量分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

Redis的指令看不出哪一類型的key,占用了多少內(nèi)存,不好分析redis內(nèi)存開(kāi)銷大的情況下,各應(yīng)用程序使用緩存的占比。

借助第3方工具進(jìn)行分析

1、采用2個(gè)工具結(jié)合

redis-rdb-tools+sqlite

2、sqlite linux服務(wù)器都會(huì)自帶,安裝redis-rdb-tools

使用pip安裝 pip install redis-rdb-tools

源碼安裝

git clone https://github.com/sripathikrishnan/redis-rdb-tools

cd redis-rdb-tools

python setup.py install

如果不成功安裝 yum install python-setuptools

3、獲取對(duì)應(yīng)redis的rdb文件,使用redis-rdb-tools生成內(nèi)存快照

rdb -c memory dump.rdb > memory.csv

注意:內(nèi)存使用量是理論上的近似值,在一般情況下,略低于實(shí)際值

4、把數(shù)據(jù)導(dǎo)入sqlite(mysql數(shù)據(jù)庫(kù)實(shí)際上都能導(dǎo)入),sqlite語(yǔ)法和mysql基本一致

splite3 test.db
sqlite> create table memory(database int,type varchar(128),key varchar(128),size_in_bytes int,encoding varchar(128),num_elements int,len_largest_element varchar(128),time varchar(128));
sqlite>.mode csv memory
sqlite>.import memory.csv memory

5、查詢

查詢key個(gè)數(shù)

sqlite>select count(*) from memory;

查詢總的內(nèi)存占用

sqlite> select sum(size_in_bytes) from memory;

查詢內(nèi)存占用最高的10個(gè)key

sqlite>select * from memory order by size_in_bytes desc limit 10;

補(bǔ)充知識(shí):Redis使用量暴增,快速定位有哪些大key在作怪

發(fā)現(xiàn)redis使用量突然暴增,于是緊急擴(kuò)容redis,不能影響服務(wù)運(yùn)行。擴(kuò)容之后,趕緊查找原因,突破口就是尋找存在哪些大key。

1. 將redis的dump.rdb文件下載到本地(一般redis的持久化文件以rdb的方式存儲(chǔ),在redis配置文件可以找到dump.rdb的存儲(chǔ)路徑)。

2. 用rdbtools工具生產(chǎn)內(nèi)存報(bào)告,命令是 rdb -c memory,例子:

sudo rdb -c memory /redisfile/dump.rdb >test.csv

注意:rdb文件越大,生成時(shí)間越長(zhǎng)。

Rdbtools是以python語(yǔ)言開(kāi)發(fā)的。

GITHUP地址:https://github.com/sripathikrishnan/redis-rdb-tools/

3. 內(nèi)存報(bào)告生成后,結(jié)合用linux sort命令排序,根據(jù)內(nèi)存列排序,找出最高的key有哪些。例子:

sudo sort -k4nr -t , test.csv > sort.txt

4. 查看前1000個(gè)排序最高的數(shù)據(jù)

awk -F ',' '{print substr($3, 0,18)}' sort.txt | head -1000 | sort -k1 | uniq

5. 查看sort.txt的結(jié)果,一般能得出類似‘my_rank_top'開(kāi)頭的集合占用最高,排在了前面。

若要查看類似‘my_rank_top'開(kāi)頭的key總共占用了多少內(nèi)存,可以用命令:

sudo cat sort.txt | grep ‘my_rank_top' | awk -F ',' '{sum += $4};END {print sum}'

6. 得知了my_rank_top這樣的key占用最多內(nèi)存,而且很可能是業(yè)務(wù)已經(jīng)不再需要,但是長(zhǎng)期在內(nèi)存中沒(méi)清理的,我們可以刪除了這些集合??梢杂媚:ヅ鋕ey來(lái)刪除,命令如下:

redis-cli -h 127.0.0.1 -p 6379 keys 'my_ranking_list*' | xargs redis-cli -h 127.0.0.1 -p 6379 del

另附:在本地啟動(dòng)redis加載dump.rdb文件時(shí),一直load失敗。搞了很長(zhǎng)時(shí)間,終于找到原因:redis配置文件里databases要修改為256,本地默認(rèn)是16,而產(chǎn)生原始dump.rdb的redis的databases就是25。

以上這篇基于redis key占用內(nèi)存量分析就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解JAVA數(shù)據(jù)類型與運(yùn)算符

    深入了解JAVA數(shù)據(jù)類型與運(yùn)算符

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2021-07-07
  • SpringCloud Bus 消息總線的具體使用

    SpringCloud Bus 消息總線的具體使用

    這篇文章主要介紹了SpringCloud Bus 消息總線的具體使用,詳細(xì)的介紹了什么是消息總線以及具體配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架,討論兩種搭建方式:基于frameset和基于easyUI,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解

    Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解

    這篇文章主要介紹了Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解,?ByteArrayInputStream?的內(nèi)部額外的定義了一個(gè)計(jì)數(shù)器,它被用來(lái)跟蹤?read()?方法要讀取的下一個(gè)字節(jié)
    2022-06-06
  • Java中內(nèi)核線程理論及實(shí)例詳解

    Java中內(nèi)核線程理論及實(shí)例詳解

    在本篇文章里小編給大家整理了一篇關(guān)于Java中內(nèi)核線程理論及實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Java獲取視頻時(shí)長(zhǎng)、大小的示例

    Java獲取視頻時(shí)長(zhǎng)、大小的示例

    這篇文章主要介紹了Java獲取視頻時(shí)長(zhǎng)、大小的示例,幫助大家利用Java處理視頻,完成需求,感興趣的朋友可以了解下
    2020-11-11
  • jquery uploadify和apache Fileupload實(shí)現(xiàn)異步上傳文件示例

    jquery uploadify和apache Fileupload實(shí)現(xiàn)異步上傳文件示例

    這篇文章主要介紹了jquery uploadify和apache Fileupload實(shí)現(xiàn)異步上傳文件示例,需要的朋友可以參考下
    2014-05-05
  • Java中的Gradle與Groovy的區(qū)別及存在的關(guān)系

    Java中的Gradle與Groovy的區(qū)別及存在的關(guān)系

    這篇文章主要介紹了Java中的Gradle與Groovy的區(qū)別及存在的關(guān)系,Groovy是一種JVM語(yǔ)言,它可以編譯為與Java相同的字節(jié)碼,并且可以與Java類無(wú)縫地互操作,Gradle是Java項(xiàng)目中主要的構(gòu)建系統(tǒng)之一,下文關(guān)于兩者的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • QR 二維碼中插入圖片實(shí)現(xiàn)方法

    QR 二維碼中插入圖片實(shí)現(xiàn)方法

    這篇文章主要介紹了QR 二維碼中插入圖片實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java負(fù)載均衡策略的實(shí)現(xiàn)詳解

    Java負(fù)載均衡策略的實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java負(fù)載均衡策略的實(shí)現(xiàn),負(fù)載均衡在Java領(lǐng)域中有著廣泛深入的應(yīng)用,不管是大名鼎鼎的nginx,還是微服務(wù)治理組件如dubbo,feign等,負(fù)載均衡的算法在其中都有著實(shí)際的使用,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

黄浦区| 河北区| 宝应县| 湘潭市| 张家港市| 滁州市| 苗栗市| 乡宁县| 鱼台县| 三门峡市| 普陀区| 镇平县| 平乡县| 梧州市| 娄底市| 板桥市| 乌海市| 中宁县| 渝北区| 丰原市| 澄城县| 会泽县| 蒙自县| 兰坪| 菏泽市| 柳林县| 闽清县| 三穗县| 晴隆县| 长白| 安图县| 黔江区| 城固县| 哈巴河县| 从化市| 望都县| 曲周县| 凤山市| 荃湾区| 荔浦县| 白山市|