占用如何快速查看Redis空间占用情况(如何查看redis空间)
在开发中,Redis是一款非常流行的高性能Nosql数据库,不但有几乎瞬间的访问速度,也拥有足够高的空间利用率,它可以让开发者在正向高效的情况下完成更多的任务。但在大规模的应用中,空间的占用可能会变得复杂,而要想快速获取Redis的空间占用情况,那么就需要借助一些高级技巧。
可以用Redis提供的一个名为“ MEMORY USAGE”的内部脚本,它可以迅速检测出Redis现有使用的内存大小,以及库文件占用的空间。来看下具体代码:
redis 127.0.0.1:6379> script load "$(cat ~/scripts/memory_usage.lua)"
OKredis 127.0.0.1:6379> EVAL MEMORY_USAGE 0
1) "used_memory_humansize": "1.37K"2) "used_memory_peak_humansize: "1.37K"
3) "total_system_memory_humansize: "3.46G"4) "rdb_last_bgsave_disk_usage_humansize": "163.68K"
此脚本可以返回的信息有:已用内存的大小(used_memory_humansize),峰值使用内存的大小(used_memory_peak_humansize),总系统内存的大小(total_system_memory_humansize),以及数据库磁盘占用的大小(rdb_last_bgsave_disk_usage_humansize)等。
借助第三方的Redis查看工具也可以轻松查看Redis空间占用情况,比如可以选择在线的RedisInsight,它的管理员仪表板可以展示 Redis用于处理数据的内存大小,以及Redis使用的总内存数量,这样通过可视化的形式来查看Redis的空间占用情况,就此的只需要轻松的简单操作,就可以获取Redis的空间占用情况。
Redis还提供了一些其他的查看命令,比如INFO,这个命令可以返回一些高级信息,比如说Redis的内存分配和报告,这些信息可以用于精确地查看哪个服务器在Redis中分配了多少内存空间,以及利用了多少空间的存储,这样以便跟踪和限制各个服务器在Redis中占用的内存大小。例如:
127.0.0.1:6379> INFO Memory
# Memoryused_memory:1412048
used_memory_human:1.37Mused_memory_rss:4966400
used_memory_peak:1414104used_memory_peak_human:1.37M
total_system_memory:8589934592total_system_memory_human:8.00G
used_memory_rss_human:4.76Mused_memory_lua:37888
used_memory_lua_human:37.00Kmaxmemory:0
maxmemory_human:0Bmaxmemory_policy:noeviction
mem_fragmentation_ratio:3.53mem_allocator:jemalloc-5.1.0
``
以上代码中,used_memory是Redis用于存储数据和索引结构的内存占用,而used_memory_peak表示Redis数据量和索引结构所占用的最大空间。
从上述可见,无论是使用Redis的内置脚本,还是采用第三方应用程序或者直接调用INFO命令,都可以快速了解Redis的空间占用情况。当存在高空间申请的需求时,就可以借助上面介绍的方法解决这一问题,而不至于产生空间耗尽的问题。