阿里云Redis集群子实例内存查看

阿里云Redis集群有多个节点,用户需要查看每个子节点的内存还有key数目,目前阿里云Redis提供了iinfo命令用于查看某个节点的性能数据,后续会在控制台展示每个节点的数据。

初始化环境

安装python客户端

下载python客户端
wget “https://pypi.python.org/packages/68/44/5efe9e98ad83ef5b742ce62a15bea609ed5a0d1caf35b79257ddb324031a/redis-2.10.5.tar.gz#md5=3b26c2b9703b4b56b30a1ad508e31083”

解压安装

tar -xvf redis-2.10.5.tar.gz
cd redis-2.10.5
sudo python setup.py install

命令介绍

iinfo node [section](node为数字,node取值为从0到节点数目-1, section为info官方一致的值)

扫描脚本

import sys
import redis
from redis._compat import nativestr

def parse_info(response):
    "Parse the result of Redis's INFO command into a Python dict"
    info = {}
    response = nativestr(response)

    def get_value(value):
        if ',' not in value or '=' not in value:
            try:
                if '.' in value:
                    return float(value)
                else:
                    return int(value)
            except ValueError:
                return value
        else:
            sub_dict = {}
            for item in value.split(','):
                k, v = item.rsplit('=', 1)
                sub_dict[k] = get_value(v)
            return sub_dict

    for line in response.splitlines():
        if line and not line.startswith('#'):
            if line.find(':') != -1:
                key, value = line.split(':', 1)
                info[key] = get_value(value)
            else:
                # if the line isn't splittable, append it to the "__raw__" key
                info.setdefault('__raw__', []).append(line)

    return info

if name == '__main__':
  if len(sys.argv) != 4:
     print 'Usage: python ', sys.argv[0], ' host port password '
     exit(1)
  db_host = sys.argv[1]
  db_port = sys.argv[2]
  db_password = sys.argv[3]
  r = redis.StrictRedis(host=db_host, port=int(db_port), password=db_password)
  nodecount = r.info()['nodecount']
  for node in range(0, nodecount):
     info = r.execute_command("iinfo", str(node))
     info_res = parse_info(info)
     print "============ node ", str(node), " ================"
     print 'used_memory_human:', info_res['used_memory_human']
     print r.execute_command("iinfo", str(node), "keyspace")
  info_res = r.info()
  print "============ total  ================"
  print 'used_memory_human:', info_res['used_memory_human']
  print r.info('keyspace')

执行python check_sharding_db host port password之后会输出如下内容

============ node  0  ================
used_memory_human: 37.56M
# Keyspace
db0:keys=9887,expires=0,avg_ttl=0

============ node  1  ================
used_memory_human: 37.58M
# Keyspace
db0:keys=9835,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0

============ node  2  ================
used_memory_human: 41.24M
# Keyspace
db0:keys=9956,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0

============ node  3  ================
used_memory_human: 37.58M
# Keyspace
db0:keys=9863,expires=0,avg_ttl=0

============ node  4  ================
used_memory_human: 37.61M
# Keyspace
db0:keys=10045,expires=0,avg_ttl=0

============ node  5  ================
used_memory_human: 37.58M
# Keyspace
db0:keys=10038,expires=0,avg_ttl=0

============ node  6  ================
used_memory_human: 37.58M
# Keyspace
db0:keys=10055,expires=0,avg_ttl=0

============ node  7  ================
used_memory_human: 37.57M
# Keyspace
db0:keys=9969,expires=0,avg_ttl=0

============ total  ================
used_memory_human: 304.31M
{'db1': {'keys': 2, 'expires': 0, 'avg_ttl': 0}, 'db0': {'keys': 79648, 'expires': 0, 'avg_ttl': 0}}
时间: 2025-01-30 17:05:35

阿里云Redis集群子实例内存查看的相关文章

阿里云Redis集群版简要介绍

阿里云云数据库Redis集群版火热抢购,详情参见>> 产品简介 云数据库 Redis 提供集群版实例,轻松突破 Redis 自身单线程瓶颈,可极大满足对于 Redis 大容量或高性能的业务需求. 云数据库 Redis 集群版内置数据分片及读取算法,整体过程对用户透明,免去用户开发及运维 Redis 集群的烦恼. 使用场景 QPS 压力较大 标准版 Redis 无法支撑较大的 QPS,需要采用多节点的部署方式来冲破 Redis 单线程的性能瓶颈.Redis 集群版提供16.32.64.128.2

Redis集群Proxy支持select命令方案介绍

目前Redis集群开源的方案主要有Redis Cluster,Codis,Twemproxy等,这几个方案里面都不支持select命令,即用户无法使用select进行逻辑db的切换,这样会给之前使用Redis单机的用户带来一定困扰,导致很多用户在迁移到集群方案的时候需要改造代码,本文探讨Redis集群支持select命令的方案实现. 阿里云Redis集群 阿里云的redis集群版由3大组件构成: redis-config : 集群管理工具 redis-server : 优化过源码的redis,支

阿里云Redis典型场景:如何构建可扩展通用排行榜系统

摘要 本文主要介绍通用排行榜的需求功能,并介绍了基于Redis的ZSET数据结构的排序方法,另外探讨了通用排行榜的架构及用户如何通过阿里云Redis解决通用排行架构的技术问题. 背景 移动互联网时代的春风刮来了各种不同的业务场景,直播元年.短视频元年.类微博信息流.各种电商业务也在这个移动互联网快车上集中爆发.在这些业务中信息成为了各种场景的关键,而信息的价值往往隐藏在各种排行中,对于一个直播大V可能关注直播人数的排行榜,因为他希望萃取他家长处:对于一个商家可能关注商品浏览排行榜,因为他希望更好

这可能是最全的 Redis 集群方案介绍了

由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以达到100GB.200GB的规模,但是单实例模式限制了Redis没法满足业务的需求(例如新浪微博就曾经用Redis存储了超过1TB的数据).Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正式版.各大企业在3.0版本还没发布前为了解决Redis的存储瓶颈,纷纷推出了各自的Redis集群方案.

《Redis官方教程》Redis集群规范

原文链接(on 20 Jul)  作者:antirez  译者:carlvine   Redis集群规范 欢迎来到Redis集群规范.在这里你可以找到有关Redis的算法和设计的基本原理.这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步.   主要属性和设计原理 Redis的集群目标   Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序: 高性能,并且多达1000个节点的线性可扩展性.没有代理,使用异步复制,并且在进行赋值时没有合并操作. 可接受程度的写安

阿里云Redis加速Discuz论坛访问

写在开始 由于阿里云ECS服务器内存只有悲催的的1G,并且只剩下了几十MB,实在不想再糟蹋她了. 你是否还在为网站访问速度而苦恼,你是否还在恐惧全国各地而来的访客.不用慌.不用怕 阿里云Redis为你保驾护航排忧解难,在这互联网的冬天让你依靠温暖的胸膛. 不要699,不要299,一年只需要99,没错你没听错.只要99元 完美缓存领回家!99元你买了不吃亏,99元你买了也不上当.不要怀疑你的眼睛,先到先得,只要99元 全能Redis领回家,不用你接不用你送,一键购买服务直达.尽管只有256MB,但

阿里云redis大key搜索工具

Redis提供了list.hash.zset等复杂类型的数据结构,业务在使用的时候可能由于key设计不合理导致某个key过大,由于redis简单的单线程模型,业务在获取或者删除大key的时候都会有一定的影响,另外在集群模式下由于大key的产生还很容易导致某个子节点的内存满,综上所述我们需要提供大key的搜索工具. 初始化环境 安装python客户端 下载python客户端 wget "https://pypi.python.org/packages/68/44/5efe9e98ad83ef5b7

阿里云Redis云数据库(KVStore For Redis)控制台介绍

阿里云Redis云数据库(KVStore For Redis)控制台介绍 实例展示页面 实例展示页面其中会会展示实例id.状态.已用内存及配额,可用区,创建时间,付费方式,网络类型等信息,其中已用内存及配额信息由于底层系统根据采集信息进行一个离线汇总的,所以有一个时间的延时,这个延时会在10分钟左右,对于需要查看实时信息的同学建议登录DMS进行查看,可以点击进入实例之后有一个实例登录按钮进行登录,目前经典网络及VPC网络的实例都已经支持DMS的管理,同时由于VPC网络需要申请一个特殊通道,对于第

使用Docker Compose部署基于Sentinel的高可用Redis集群

大家一定非常熟悉如何利用Docker启动单个Redis容器用于开发环境,本文将介绍如何利用Docker Compose模板在本机和云端部署基于Sentinel的高可用Redis 3集群. Redis集群可以在一组redis节点之间实现高可用性和sharding.今天我们重点围绕master-slave的高可用模式来进行讨论,在集群中会有1个master和多个slave节点.当master节点失效时,应选举出一个slave节点作为新的master.然而Redis本身(包括它的很多客户端)没有实现自