<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何發(fā)現(xiàn) Redis 內(nèi)存占用大 key

          共 3140字,需瀏覽 7分鐘

           ·

          2021-09-12 16:08

          點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號

          重磅干貨,第一時(shí)間送達(dá)

          Redis 中的大 key 一直是重點(diǎn)需要優(yōu)化的對象,big key 既占用比較多的內(nèi)存,也可能占用比較多的網(wǎng)卡資源,造成 Redis 阻塞,因此需要找到這些 big key 進(jìn)行優(yōu)化。


          0x01:redis-rdb-tools工具

          在 redis 實(shí)例上執(zhí)行 bgsave,然后對 dump 出來的 rdb文件進(jìn)行分析,找到其中的大 key。

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

          rdbtools 工 具包括了3個(gè)可執(zhí)行文件:

          • rdb 解析整個(gè)rdb文件

          • redis-memory-for-key 解析server里的單個(gè)key

          • redis-profiler  解析rdb文件成html格式

          源碼安裝redis-rdb-tools

          git clone https://github.com/sripathikrishnan/redis-rdb-tools
          cd redis-rdb-tools
          python setup.py install


          安裝 python-lzf,加快解析速度

          pip install python-lzf

          推薦 PyPI 安裝方式

          pip install rdbtools python-lzf


          0x02:redis-cli --bigkeys 命令

          可以找到某個(gè)實(shí)例5種數(shù)據(jù)類型 String、hash、list、set、zset 的最大key

          [redis@olive bin]$ ./redis-cli -h 127.0.0.1 -p 6379 --bigkeys

          # Scanning the entire keyspace to find biggest keys as well as
          # average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
          # per 100 SCAN commands (not usually needed).

          [00.00%] Biggest string found so far 'artisan43206' with 12 bytes
          [37.40%] Biggest string found so far 'artisanBIG' with 26890 bytes

          -------- summary -------

          Sampled 100004 keys in the keyspace!
          Total key length in bytes is 1188921 (avg len 11.89)

          Biggest string found 'artisanBIG' has 26890 bytes

          100004 strings with 1215805 bytes (100.00of keys, avg size 12.16)
          0 lists with 0 items (00.00of keys, avg size 0.00)
          0 sets with 0 members (00.00of keys, avg size 0.00)
          0 hashs with 0 fields (00.00of keys, avg size 0.00)
          0 zsets with 0 members (00.00of keys, avg size 0.00)
          0 streams with 0 entries (00.00of keys, avg size 0.00)
          [redis@olive bin]$ 
          • 該命令使用 scan 方式對 key 進(jìn)行統(tǒng)計(jì),所以使用時(shí)無需擔(dān)心對 redis 造成阻塞。

          • 輸出大概分為兩部分,summary 之上的部分,只是顯示了掃描的過程。summary 部分給出了每種數(shù)據(jù)結(jié)構(gòu)中最大的Key。

          • 統(tǒng)計(jì)出的最大 key 只有 string 類型是以字節(jié)長度為衡量標(biāo)準(zhǔn)的。list、set、zset 等都是以元素個(gè)數(shù)作為衡量標(biāo)準(zhǔn),不能說明其占的內(nèi)存就一定多。所以,如果存儲的Key 主要以 string 類型存在,這種方法就比較適合。


          0x03:自定義掃描腳本

          以 Python 腳本居多,使用方式與 redis-cli --bigkeys類似。


          0x04:debug object key 命令

          可以查看某個(gè) key 序列化后的長度,每次只能查找單個(gè) key 的信息。不推薦使用該方式。


          0x05:memory usage 命令


          Redis 4.0 引入了 memory usage 命令和 lazyfree 機(jī)制。不管是對 big key 的發(fā)現(xiàn),還是解決 big key 刪除或者過期造成的阻塞問題都有明顯的提升。

          memory usage 使用非常簡單,直接按 memory usage key名字;如果當(dāng)前key 存在,則返回 key 的 value 實(shí)際使用內(nèi)存估算值;如果 key 不存在,則返回 nil。


          “拍一拍” 能撤回了 ?。。?/a>

          5款Chrome插件,第1款絕對良心!

          為開發(fā)色情游戲,這家公司赴日尋找AV女優(yōu)拍攝,期望暴力賺錢結(jié)果...

          拼多多終于釀成慘劇

          華為阿里下班時(shí)間曝光:所有的光鮮,都有加班的味道


          關(guān)


          ,學(xué)西學(xué)學(xué)運(yùn)護(hù),質(zhì),結(jié),關(guān)[],學(xué)習(xí)進(jìn)!


          瀏覽 76
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲午夜视频在线观看 | SWAG国产精品一区二区 | www亚洲无 码A片 | 中文字幕三级 | 亚洲爆乳一区二区三区 |