Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >查看Redis集群所有节点内存工具

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

作者头像
一见
发布于 2018-09-30 03:16:27
发布于 2018-09-30 03:16:27
2.7K0
举报
文章被收录于专栏:蓝天蓝天

指定集群中任意一个节点,查看集群中所有节点当前已用物理内存、配置的最大物理内存和系统物理内存。 源码(可从下载):

  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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/09/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
查看Redis集群主从对应关系工具
源代码(可从https://github.com/eyjian/redis-tools下载):
一见
2018/09/30
2.2K0
查看Redis集群主从对应关系工具
Redis集群命令行部署工具
使用之前准备工作: 1)配置好与端口无关的公共redis.conf文件,和工具放在同一目录下 2)配置好与端口相关的模板redis-PORT.conf文件,也和工具放在同一目录下(部署时PORT会被替换成具体的端口号) 3)配置好组成集群的节点文件redis_cluster.nodes,也和工具放在同一目录下 redis_cluster.nodes的文件格式为每行一个组成Redis集群的节点,支持“#”打头的注释行,格式示例: 127.0.0.1 6381 127.0.0.1 6382 127.0.0.1 6383 127.0.0.1 6384 127.0.0.1 6385 127.0.0.1 6386 4)创建好安装redis的目录(可建筑批量工具mooon_ssh完成,deploy_redis_cluster.sh主要也是利用了该批量工具) 5)其它更详细的可以直接看源代码,有详细的说明。 建立将https://github.com/eyjian/redis-tools/tree/master/deploy下载到一个目录,运行deploy_redis_cluster.sh工具时,它会提示各种前置条件,比如redis-cli是否可用等。 源码(可从https://github.com/eyjian/redis-tools下载):
一见
2018/09/30
9600
Redis进阶-无所不知的info命令诊断redis
在使用 Redis 时,时常会遇到很多问题需要诊断,在诊断之前需要了解 Redis 的运行状态,通过强大的 Info 指令,你可以清晰地知道 Redis 内部一系列运行参数。
小小工匠
2021/08/17
1.5K0
Redis系列:单机主从模式搭建
无论哪种中间件的搭建,正常主从模式搭建需要搭建在两台不同的服务器上才是正规的主从搭建模式。因为由于资源的限制,今天来演示一下在同一台服务器上,基于端口不一致搭建Redis的单机主从模式。
BUG弄潮儿
2020/09/28
6080
Redis系列:单机主从模式搭建
Redis高可用之持久化
redis将数据保存在内存中,一旦Redis服务器被关闭,或者运行Redis服务的主机本身被关闭的话,储存在内存里面的数据就会丢失
良月柒
2019/03/20
8810
Redis高可用之持久化
Redis 服务器
run_id:72ee9108ccfa7ea74bcf41c9b7575f327c3d64fd
子润先生
2021/07/02
1.1K0
清空Redis集群所有节点的数据工具
#!/bin/bash # Batch to clear all nodes using FLUSHALL command # 用来清空一个redis集群中的所有数据,要求 FLUSHALL 命令可用, # 如果在 redis.conf 中使用 rename 改名了 FLUSHALL,则不能执行本脚本。 # 可带两个参数: # 1)参数1 集群中的任一可用节点(必须) # 2)连接redis的密码(设置了密码才需要) REDIS_CLI=${REDIS_CLI:-redis-cli} REDIS_IP=${
一见
2020/09/07
2.3K0
redis4的自动内存整理
127.0.0.1:7001> config set activedefrag yes
保持热爱奔赴山海
2019/09/17
2K2
Redis的三种集群方式
redis有三种集群方式:主从复制,哨兵模式(Sentinel)和集群(Redis Cluster)。
王先森sec
2023/04/24
4.8K0
Redis的三种集群方式
Redis监控步骤get!Google精髓的四大法则直接掌握
Redis也是对外服务,所以Google四个黄金指标同样适用,还从延迟、流量、错误、饱和度分析Redis关键指标。
JavaEdge
2023/05/03
9310
Redis监控步骤get!Google精髓的四大法则直接掌握
记一次混合监控的反思
作为最底层的技术人员,目前由于有客户在运维中遇到混合架构,公有云上使用了产品级别Redis数据库,同时由于业务在云服务器和kubnets的容器内也有redis数据库,因此对于这种混合模式数据库的监控,进行简单的分析总结,在此记录笔记,在此抛砖引玉,也曾希望对各位有一点点益处。
KaliArch
2018/08/13
5130
记一次混合监控的反思
接口性能优化方案及其理论依据
  我们现在接口的线上问题主要有三个,第一:启动时有些机器会有短暂的线程池满。第二:并发量上不去,怕服务被打死,不敢调高限流阈值。第三:499超时现象。 今天已上线   今天终于把那天说的全量执行时间
静儿
2018/06/22
7420
Codis搭建详细攻略
ECS:测试实例3台32C128GB规格 REDIS:Redis 4.0—128G集群版16节点
mingjie
2022/05/12
9350
Codis搭建详细攻略
实战:第十一篇:StringRedisTemplate获取redis信息
需求:  解答: 导入相关的pom.xml 然后给配置: 最后在给上api: Properties info = stringRedisTemplate.getRequiredConnectionFactory().getConnection().info("memory"); 可选参数: server:有关Redis服务器的常规信息 clients:客户端连接部分 memory:内存消耗相关信息 persistence:RDB和AOF相关信息 s
Java廖志伟
2022/09/28
7980
实战:第十一篇:StringRedisTemplate获取redis信息
Redis调优 | 内存碎片
随着业务的发展, Redis集群内存使用量暴涨, 即使删除了部分数据, 内存占用量依然没有明显下降.
一个架构师
2022/06/27
2.1K0
Redis优化之内存碎片小踩坑
近来项目里引用了Redis,本来用这高端玩意就是为了加速项目跑的速度。然而,用着用着越来越慢。而之前就做着性能优化的活,也顺手接下了优化Redis的活
Ewdager
2020/07/14
4.1K0
Redis优化之内存碎片小踩坑
Codis 3.2 部署配置汇总
服务端:codis-fe------codis-dashboard------codis-proxy------codis-group------codis-server
三杯水Plus
2018/11/14
1.2K0
Redis 状态信息详解(2)
连接 使用客户端连接, [root@h102 ~]# redis-cli -p 6379 127.0.0.1:6379> ---- info info 命令会反馈出服务的统计信息 并且是以分组的形式进行展现 [root@h102 ~]# redis-cli -p 6379 127.0.0.1:6379> info # Server redis_version:3.2.1 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:588e5be7450e
franket
2021/10/18
5050
Redis的slot迁移工具
工具下载: https://github.com/eyjian/redis-tools/blob/master/move_redis_slot.sh 支持迁移已有的keys。
一见
2020/08/13
1.5K0
Redis 状态信息详解(3)
理想情况下 used_memory_rss 只会比 used_memory 大一点点
franket
2021/10/18
4630
相关推荐
查看Redis集群主从对应关系工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档