当前位置: 首页> 科技> 互联网 > 查看redis内存使用情况及总内存量

查看redis内存使用情况及总内存量

时间:2025/7/15 1:16:15来源:https://blog.csdn.net/qq_36663518/article/details/139289339 浏览次数:0次
import redis# 配置 Redis 主机和端口
redis_hosts =  [{"域名或ip1", "port": "端口号1"},{"域名或ip2", "port": "端口号2"},]
all_used_port=[端口号1,端口号2]
# 转换字节为GB
def bytes_to_gb(bytes_value):return bytes_value / (1024 ** 3)# 解析 nodes_info 数据
def parse_nodes_info(nodes_info):instances = []for address, node_data in nodes_info.items():if node_data['connected']:host, port_info = address.split(":")port = port_info.split("@")[0]instances.append((host, int(port)))return instances# 获取Redis节点的内存信息并计算总内存
def get_memory_info_and_total(instances):total_system_memory_bytes = 0total_used_memory_bytes = 0all_port={}for host, port in instances:try:r = redis.StrictRedis(host=host, port=port)info = r.info("memory")instance_system_memory_bytes = info.get('total_system_memory', 0)instance_used_memory_bytes = info.get('used_memory', 0)if port not in all_port and port in all_used_port:total_system_memory_bytes += instance_system_memory_bytesall_port[port]=1total_used_memory_bytes += instance_used_memory_bytesinstance_system_memory_gb = bytes_to_gb(instance_system_memory_bytes)instance_used_memory_gb = bytes_to_gb(instance_used_memory_bytes)#             print(f"Instance: {host}:{port}")
#             print(f"Total System Memory: {instance_system_memory_gb:.2f} GB")
#             print(f"Used Memory: {instance_used_memory_gb:.2f} GB")
#             print(f"Memory Fragmentation Ratio: {info.get('mem_fragmentation_ratio', 'N/A')}")
#             print("-" * 40)except Exception as e:print(f"Could not connect to instance {host}:{port}")print(f"Error: {e}")print("-" * 40)total_system_memory_gb = bytes_to_gb(total_system_memory_bytes)/1.7 #除以大致的备份比,根据实际情况换算total_used_memory_gb = bytes_to_gb(total_used_memory_bytes)/2 #除以大致的备份比,根据实际情况换算print("Total Memory Information Across All Instances")print(f"Total System Memory: {total_system_memory_gb:.2f} GB")print(f"Total Used Memory: {total_used_memory_gb:.2f} GB")# 遍历每个集群节点并获取实例信息
redis_hosts=redis_hosts[:1]
for cluster in redis_hosts:host = cluster["host"]port = cluster["port"]try:r = redis.StrictRedis(host=host, port=port)nodes_info = r.cluster("NODES")# 获取实例列表instances = parse_nodes_info(nodes_info)print("",len(instances))# 获取每个实例的内存信息并计算总内存get_memory_info_and_total(instances)except Exception as e:print(f"Could not connect to cluster node {host}:{port}")print(f"Error: {e}")print("-" * 40)
关键字:查看redis内存使用情况及总内存量

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: