查看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



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
228 0
|
24天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
191 2
|
25天前
|
存储 Kubernetes 容器
【CKA模拟题】查找集群中使用内存最高的node节点
【CKA模拟题】查找集群中使用内存最高的node节点
16 1
|
30天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
187 0
|
1天前
|
存储 NoSQL 算法
Redis 搭建分片集群
Redis 搭建分片集群
|
17天前
|
NoSQL 安全 Redis
redis内存限制与淘汰策略
Redis内存管理包括限制和淘汰策略。`maxmemory`配置参数决定内存上限,无设置时64位系统默认不限制,可能导致系统资源耗尽,生产环境建议设定合理值。当内存满时,未设置淘汰策略会导致写入错误。Redis提供8种淘汰策略,如LRU(最近最少使用)和LFU(最不经常使用),以及随机或基于过期时间的删除。需根据数据重要性、访问频率和一致性选择合适策略。
163 0
|
23天前
|
存储 缓存 NoSQL
Redis 服务器指南:高性能内存数据库的完整使用指南
Redis 服务器指南:高性能内存数据库的完整使用指南
|
24天前
|
NoSQL Java 测试技术
面试官:如何搭建Redis集群?
**Redis Cluster** 是从 Redis 3.0 开始引入的集群解决方案,它分散数据以减少对单个主节点的依赖,提升读写性能。16384 个槽位分配给节点,客户端通过槽位信息直接路由请求。集群是无代理、去中心化的,多数命令直接由节点处理,保持高性能。通过 `create-cluster` 工具快速搭建集群,但适用于测试环境。在生产环境,需手动配置文件,启动节点,然后使用 `redis-cli --cluster create` 分配槽位和从节点。集群动态添加删除节点、数据重新分片及故障转移涉及复杂操作,包括主从切换和槽位迁移。
32 0
面试官:如何搭建Redis集群?
|
24天前
|
存储 缓存 NoSQL
Redis的内存淘汰策略是什么?
【4月更文挑战第2天】Redis内存淘汰策略在内存满时,通过删除旧数据为新数据腾空间。策略包括:volatile-lru/LFU(基于LRU/LFU算法淘汰有过期时间的键),volatile-random/ttl(随机/按TTL淘汰),allkeys-lru/LFU(所有键的LRU/LFU),allkeys-random(随机淘汰所有键),以及noeviction(不淘汰,返回错误)。选择策略要考虑访问模式、数据重要性和性能需求。
|
28天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
320 0

热门文章

最新文章