查看Redis集群所有节点内存工具

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 指定集群中任意一个节点,查看集群中所有节点当前已用物理内存、配置的最大物理内存和系统物理内存。 源码(可从下载): #!/bin/bash # Query the memory of all nodes in a cluster ...
指定集群中任意一个节点,查看集群中所有节点当前已用物理内存、配置的最大物理内存和系统物理内存。

源码(可从下载):
  1. #!/bin/bash
  2. # Query the memory of all nodes in a cluster
  3. #
  4. # Output example:
  5. # $ ./query_redis_cluster.sh 192.168.0.31.21:6379
  6. # [192.168.0.31.21:6379] Used: 788.57M Max: 15.00G System: 125.56G
  7. # [192.168.0.31.22:6380] Used: 756.98M Max: 15.00G System: 125.56G
  8. # [192.168.0.31.23:6380] Used: 743.93M Max: 15.00G System: 125.56G
  9. # [192.168.0.31.24:6380] Used: 21.73M Max: 15.00G System: 125.56G
  10. # [192.168.0.31.25:6380] Used: 819.11M Max: 15.00G System: 125.56G
  11. # [192.168.0.31.24:6379] Used: 771.70M Max: 15.00G System: 125.56G
  12. # [192.168.0.31.26:6379] Used: 920.77M Max: 15.00G System: 125.56G
  13. # [192.168.0.31.27:6380] Used: 889.09M Max: 15.00G System: 125.27G
  14. # [192.168.0.31.28:6379] Used: 741.24M Max: 15.00G System: 125.56G
  15. # [192.168.0.31.29:6380] Used: 699.55M Max: 15.00G System: 125.56G
  16. # [192.168.0.31.27:6379] Used: 752.89M Max: 15.00G System: 125.27G
  17. # [192.168.0.31.21:6380] Used: 716.05M Max: 15.00G System: 125.56G
  18. # [192.168.0.31.23:6379] Used: 784.82M Max: 15.00G System: 125.56G
  19. # [192.168.0.31.26:6380] Used: 726.40M Max: 15.00G System: 125.56G
  20. # [192.168.0.31.25:6379] Used: 726.09M Max: 15.00G System: 125.56G
  21. # [192.168.0.31.29:6379] Used: 844.59M Max: 15.00G System: 125.56G
  22. # [192.168.0.31.28:6380] Used: 14.00M Max: 15.00G System: 125.56G
  23. # [192.168.0.31.22:6379] Used: 770.13M Max: 15.00G System: 125.56G
  24. REDIS_CLI=${REDIS_CLI:-redis-cli}
  25. REDIS_IP=${REDIS_IP:-127.0.0.1}
  26. REDIS_PORT=${REDIS_PORT:-6379}
  27. function usage()
  28. {
  29. echo "Usage: `basename $0` redis_node"
  30. echo "Example: `basename $0` 127.0.0.1:6379"
  31. }
  32. # with a parameter: single redis node
  33. if test $# -ne 1; then
  34. usage
  35. exit 1
  36. fi
  37. eval $(echo "$1" | awk -F[\:] '{ printf("REDIS_IP=%s\nREDIS_PORT=%s\n",$1,$2) }')
  38. if test -z "$REDIS_IP" -o -z "$REDIS_PORT"; then
  39. echo "Parameter error"
  40. usage
  41. exit 1
  42. fi
  43. # 确保redis-cli可用
  44. which "$REDIS_CLI" > /dev/null 2>&1
  45. if test $? -ne 0; then
  46. echo "\`redis-cli\` not exists or not executable"
  47. exit 1
  48. fi
  49. redis_nodes=`redis-cli -h $REDIS_IP -p $REDIS_PORT cluster nodes | awk -F[\ \:\@] '!/ERR/{ printf("%s:%s\n",$2,$3); }'`
  50. if test -z "$redis_nodes"; then
  51. # standlone
  52. $REDIS_CLI -h $REDIS_IP -p $REDIS_PORT FLUSHALL
  53. else
  54. # cluster
  55. for redis_node in $redis_nodes;
  56. do
  57. if test ! -z "$redis_node"; then
  58. eval $(echo "$redis_node" | awk -F[\:] '{ printf("redis_node_ip=%s\nredis_node_port=%s\n",$1,$2) }')
  59. if test ! -z "$redis_node_ip" -a ! -z "$redis_node_port"; then
  60. items=(`$REDIS_CLI -h $redis_node_ip -p $redis_node_port INFO MEMORY 2>&1 | tr '\r' ' '`)
  61. used_memory_rss_human=0
  62. maxmemory_human=0
  63. total_system_memory_human=0
  64. for item in "${items[@]}"
  65. do
  66. eval $(echo "$item" | awk -F[\:] '{ printf("name=%s\nvalue=%s\n",$1,$2) }')
  67. if test "$name" = "used_memory_rss_human"; then
  68. used_memory_rss_human=$value
  69. elif test "$name" = "maxmemory_human"; then
  70. maxmemory_human=$value
  71. elif test "$name" = "total_system_memory_human"; then
  72. total_system_memory_human=$value
  73. fi
  74. done
  75. echo -e "[\033[1;33m${redis_node_ip}:${redis_node_port}\033[m]\tUsed: \033[0;32;32m$used_memory_rss_human\033[m\tMax: \033[0;32;32m$maxmemory_human\033[m\tSystem: \033[0;32;32m$total_system_memory_human\033[m"
  76. fi
  77. fi
  78. done
  79. fi



相关文章
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
本文深度分析了Redis内存陡增100%的一些细节和解决方案。
373 1
Redis:内存陡增100%深度复盘
|
2月前
|
存储 缓存 NoSQL
工作 10 年!Redis 内存淘汰策略 LRU 和传统 LRU 差异,还傻傻分不清
小富带你深入解析Redis内存淘汰机制:LRU与LFU算法原理、实现方式及核心区别。揭秘Redis为何采用“近似LRU”,LFU如何解决频率老化问题,并结合实际场景教你如何选择合适策略,提升缓存命中率。
377 3
|
5月前
|
存储 监控 NoSQL
流量洪峰应对术:Redis持久化策略与内存压测避坑指南
本文深入解析Redis持久化策略与内存优化技巧,涵盖RDB快照机制、AOF重写原理及混合持久化实践。通过实测数据揭示bgsave内存翻倍风险、Hash结构内存节省方案,并提供高并发场景下的主从复制冲突解决策略。结合压测工具链构建与故障恢复演练,总结出生产环境最佳实践清单。
182 9
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
2026 1
|
5月前
|
存储 Ubuntu Linux
内存卡格式化必看!4个格式化工具与注意事项
今天就给大家推荐几款经过实测的内存卡格式化工具,它们不仅使用简单、支持多种格式,而且在修复损坏卡方面也表现稳定,是实用性与安全性兼具的好帮手。
|
7月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
8月前
|
NoSQL 关系型数据库 MongoDB
接口管理工具深度对比:Apipost与Apifox在Redis/MongoDB支持上的关键差异
近期在团队工具选型时,系统对比了Apifox和Apipost两款接口管理工具,我们的体会是:Apipost适合需要同时管理多种数据库的中大型项目,特别是涉及Redis/MongoDB等非关系型数据库的场景,Apifox仅建议在纯关系型数据库架构且预算有限的小型项目中短期使用。
284 3
|
12月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
388 62
|
10月前
|
JSON NoSQL Java
从Redis到Tair:开源工具的最佳实践
《从Redis到Tair:开源工具的最佳实践》介绍了Redis闭源后Valkey社区的成立及其兼容性测试、性能测试、数据迁移与校验、客户端接入最佳实践,以及Tair的开源模块。内容涵盖Redis闭源背景、阿里云在Valkey社区中的贡献、Tair与Redis的兼容性测试工具(如resp-compatibility)、性能测试工具(如RESP-Benchmark)、数据迁移工具(如Redis Shake)及数据校验工具。此外,还详细介绍了TairHash和TairDoc两个开源模块的应用场景,帮助用户更好地理解和使用这些工具。
520 4
|
11月前
|
NoSQL 算法 Redis
redis内存淘汰策略
Redis支持8种内存淘汰策略,包括noeviction、volatile-ttl、allkeys-random、volatile-random、allkeys-lru、volatile-lru、allkeys-lfu和volatile-lfu。这些策略分别针对所有键或仅设置TTL的键,采用随机、LRU(最近最久未使用)或LFU(最少频率使用)等算法进行淘汰。
323 5

热门文章

最新文章