如何查看redis內存使用情況

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

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

執(zhí)行 info memory 查詢 Redis 內存使用情況信息


image.png
本地的redis:0>info memory
"# Memory
used_memory:692264
used_memory_human:676.04K
used_memory_rss:655336
used_memory_peak:693144
used_memory_peak_human:676.90K
used_memory_lua:36864
mem_fragmentation_ratio:0.95
mem_allocator:jemalloc-3.6.0
"
本地的redis:0>

分析 查詢結果1

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

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

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

分析 查詢結果2

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

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

used_memory_lua : Lua 引擎所使用的內存大?。ㄒ宰止?jié)為單位)

mem_fragmentation_ratio : used_memory_rss 和 used_memory 之間的比率

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

對比幾個值

1)當 rss > used ,且兩者的值相差較大時,表示存在(內部或外部的)內存碎片。
內存碎片的比率可以通過 mem_fragmentation_ratio 的值看出。

2)當 used > rss 時,表示 Redis 的部分內存被操作系統(tǒng)換出到交換空間了,在這種情況下,操作可能會產生明顯的延遲。
當 Redis 釋放內存時,分配器可能會,也可能不會,將內存返還給操作系統(tǒng)。

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

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容