1. 程式人生 > >如何查看redis內存使用情況

如何查看redis內存使用情況

item https tex IT cda aid inf lB 方法

https://jingyan.baidu.com/article/2c8c281dbd079f0008252a0f.html

Redis 是一個開源(BSD許可)的,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。Redis的基本特點之一內存數據庫,因為其數據是放在內存中的所以查詢、操作非常快,但是占用過多的內存也是我們擔心的,那麽如何查看Redis內存使用情況呢?

工具/原料

  • Redis
  • Redis 客戶端

方法/步驟

  1. 1

    使用Redis客戶端連接Redis,保證可以執行Redis命令,我用的客戶端是 Redis Desktop Manager,當然也可使用 Xshell

    技術分享圖片
  2. 2

    執行 info memory 查詢 Redis 內存使用情況信息

    技術分享圖片
  3. 3

    分析 查詢結果

    used_memory : 由 Redis 分配器分配的內存總量,以字節(byte)為單位

    used_memory_human : 以人類可讀的格式返回 Redis 分配的內存總量

    used_memory_rss : 從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top 、 ps 等命令的輸出一致。

    技術分享圖片
  4. 4

    分析 查詢結果2

    used_memory_peak : Redis 的內存消耗峰值(以字節為單位)

    used_memory_peak_human : 以人類可讀的格式返回 Redis 的內存消耗峰值

    used_memory_lua : Lua 引擎所使用的內存大小(以字節為單位)

    mem_fragmentation_ratio : used_memory_rss 和 used_memory 之間的比率

    mem_allocator : 在編譯時指定的, Redis 所使用的內存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。

    技術分享圖片
  5. 5

    對比幾個值

    1)當 rss > used ,且兩者的值相差較大時,表示存在(內部或外部的)內存碎片。

    內存碎片的比率可以通過 mem_fragmentation_ratio 的值看出。

    2)當 used > rss 時,表示 Redis 的部分內存被操作系統換出到交換空間了,在這種情況下,操作可能會產生明顯的延遲。

    技術分享圖片
  6. 6

    當 Redis 釋放內存時,分配器可能會,也可能不會,將內存返還給操作系統。

    如果 Redis 釋放了內存,卻沒有將內存返還給操作系統,那麽 used_memory 的值可能和操作系統顯示的 Redis 內存占用並不一致。查看 used_memory_peak 的值可以驗證這種情況是否發生。

    END

註意事項

  • 內存碎片註意清理
  • 根據自己內存大小進行測試

如何查看redis內存使用情況