如何查看redis內存使用情況
https://jingyan.baidu.com/article/2c8c281dbd079f0008252a0f.html
Redis 是一個開源(BSD許可)的,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。Redis的基本特點之一內存數據庫,因為其數據是放在內存中的所以查詢、操作非常快,但是占用過多的內存也是我們擔心的,那麽如何查看Redis內存使用情況呢?
工具/原料
- Redis
- Redis 客戶端
方法/步驟
-
1
使用Redis客戶端連接Redis,保證可以執行Redis命令,我用的客戶端是 Redis Desktop Manager,當然也可使用 Xshell
-
2
執行 info memory 查詢 Redis 內存使用情況信息
-
3
分析 查詢結果
used_memory : 由 Redis 分配器分配的內存總量,以字節(byte)為單位
used_memory_human : 以人類可讀的格式返回 Redis 分配的內存總量
used_memory_rss : 從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top 、 ps 等命令的輸出一致。
-
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
對比幾個值
1)當 rss > used ,且兩者的值相差較大時,表示存在(內部或外部的)內存碎片。
內存碎片的比率可以通過 mem_fragmentation_ratio 的值看出。
2)當 used > rss 時,表示 Redis 的部分內存被操作系統換出到交換空間了,在這種情況下,操作可能會產生明顯的延遲。
-
6
當 Redis 釋放內存時,分配器可能會,也可能不會,將內存返還給操作系統。
如果 Redis 釋放了內存,卻沒有將內存返還給操作系統,那麽 used_memory 的值可能和操作系統顯示的 Redis 內存占用並不一致。查看 used_memory_peak 的值可以驗證這種情況是否發生。
END
註意事項
- 內存碎片註意清理
- 根據自己內存大小進行測試
如何查看redis內存使用情況