Redis服务信息–Info指令

  • 在使用Redis时候,可能会遇到一些异常情况,我们排查完代码问题后,会需要对Redis进行排查,在对Redis错误进行排查之前,需要了解Redis运行状态,通过强大Info指令,可以清晰的知道Redis内部的一些运行参数。
  • Info指令的信息是最全面的,分为如下9大块,每一块信息都有非常多的参数,如下:
    • Server:服务器运行环境参数
    • Clients:客户端相关信息
    • Memory:服务器运行内存统计数据
    • Persistence:持久化信息
    • Stats:通用统计数据
    • Replication:主从复制相关信息
    • CPU:CPU使用情况
    • Cluster:集群信息
    • KeySpace:键值对统计数量信息
  • 以下介绍我认为对排查问题关键的一些内容。
Redis每秒执行次数指令
  • info stats中,可以看到每秒操作指令次数:
新docker-redis:0>info stats
"# Stats
total_connections_received:97290
total_commands_processed:106600526
instantaneous_ops_per_sec:732
  • 以上 instantaneous_ops_per_sec:732,也就是所有客户端一起,每秒发送732 条指令到服务器执行。极限情况下,Redis可以10W/s的指令,测试环境我们可以通过monitor指令观看观察一下那些key被访问的比较频繁,从而在相应的业务上进行优化。以减少IO操作次数。
Redis客户端连接数
  • 这部分信息在Clients块中,通过info clients看到:
新docker-redis:0>info clients
"# Clients
connected_clients:141
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
"
  • 以上信息也是比较重要的信息, connected_clients 标识正在连接的客户端数量 141 个,可以通过这个看出是否有意料之外的连接。如果发现数量不对劲,可以使用client list指令列出所有客户端连接地址来确定源头:
新docker-redis:0>client list
"id=97758 addr=172.0.0.1:39086 fd=131 name= age=108 idle=108 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
......
  • 与客户端连接相关的参数还有另外一个比较重要:rejected_connections,标识因为超出最大连接数限制而被拒绝的客户端连接的次数。如果这个数值很大,意味着我们的Redis服务无法承载限制的访问量,需要调节连接数的最大值,maxclients参数:

新docker-redis:0>info stats
"# Stats
......
instantaneous_output_kbps:190.50
rejected_connections:0
......
Redis内存占用
  • 这块信息是经常需查询的信息,可以通过info memory看到
新docker-redis:0>info memory
"# Memory
used_memory:8575938024
used_memory_human:7.99G            //内存分配器(jmealloc)从操作系统分配的内存总量 7.99G
used_memory_rss:10298728448
used_memory_rss_human:9.59G        //操作系统看到的内存占用,top命令看到的内存
used_memory_peak:8590183584
used_memory_peak_human:8.00G       //Redis内存消耗的峰值
used_memory_peak_perc:99.83%       //Redis内存消耗峰值占比总内存大小
......
复制积压缓冲区的大小
  • 这个信息在Replication块里,可以通过info replication看到
新docker-redis:0>info replication
"# Replication
role:master
connected_slaves:0
master_replid:cf472bcc723376a795b764b7496308068e661bda
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576         //积压缓冲区大小  1048576 字节
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
"
  • 复制挤压缓冲区大小非常重要,严重影响主从复制的效率。当从节点因为网络原因临时断开了对主节点的复制,然后网络恢复且又重新链接上,这期间发送在主节点是的修改指令都会被放再积压缓冲区中,这样从节点可以通过积压缓冲区恢复中断的主从同步过程。

  • 上一节主从同步中我们也讨论过环形缓冲区问题,从节点端口时间过长,或者缓冲区设置太小,都会导致从节点无法快速恢复中断,因为积压缓冲区环形存储满之后会被之后的指令覆盖,这时候只能全量同步,非常耗资源

  • 应该有一个适当的大小,当有多个从节点复制,积压缓冲区是共享的,不会因为从节点格式线性增加

  • 如果实例修改指令请求频繁,应该调大积压缓冲区 几十MB差不多

  • Redis闲置的时候,即MB即可

  • 可以通过sync_artial_err参数的次数来决定是否需要扩大积压缓冲区,他标识主从同步复制失败的次数。

新docker-redis:0>info stats
"# Stats
......
sync_full:0
sync_partial_ok:0
sync_partial_err:0  //同步失败次数 0
......

上一篇:Redis高可用基石–主从同步
下一篇:Redis底层实现–字符串

Redis服务信息--Info指令相关推荐

  1. redis服务的部署

    一.介绍 中文官网 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes ...

  2. 王义成:阿里云Redis服务助力游戏行业发展

    2018数据库直播大讲堂峰会Redis专场,来自阿里云高级产品专家王义成带来Redis助力游戏行业的相关演讲.主要从传统数据库的压力开始谈起,着重介绍了阿里云Redis产品架构以及不同的版本,接着对R ...

  3. redis配置信息解读

    [教你看懂redis配置 – 简介] 我们可以在启动redis-server时指定应该加载的配置文件,方法如下: $ ./redis-server /path/to/redis.conf 接下来,我们 ...

  4. window下怎么启动redis服务

    -恢复内容开始- 在windows环境下启动redis服务,前提是你安装好了,启动如下: 一,进入redis的安装目录下,在地址栏输入"cmd",回车 二,然后会进入cmd界面,直 ...

  5. Redis 服务配置 redis.conf 配置文件详解

    一.Redis的安装 想要使用Redis,肯定是先要在服务器上进行安装:对于安装在本篇文章中就不讲解,不会的可以看我另一篇文章:传送门 二.Redis版本:redis-server --version ...

  6. Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步

    Linux企业化运维 实验所用系统为Redhat-rhel7.6. 目录 Linux企业化运维 Linux企业化运维--(7)redis服务之redis配置及主从复制.主从自动切换.集群.redis+ ...

  7. Java Web学习day26------Redis基础、Redis数据类型、常用指令、jedis、持久化

    Redis基础.Redis数据类型.常用指令.jedis.持久化 1. Redis 简介 1.1 NoSQL概念 1.2 Redis概念 1.3 Redis 的下载与安装 1.4 Redis服务器启动 ...

  8. linux 启动redis服务

    centos服务器重启后启动redis服务 一. 未配置 系统 Unit 手动重启 1.查看redis配置文件路径 2.找到 redis-server 启动文件 3. 服务启动 ./redis-ser ...

  9. CentOS 7安装Redis服务

    一.Redis下载 在centOS里通过wget下载redis wget http://download.redis.io/releases/redis-4.0.11.tar.gz  具体版本下载地址 ...

最新文章

  1. 分布式session一致性问题
  2. 用java异常完成丢色子功能,java自动投掷骰子设计报告(含源码)
  3. RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
  4. 踩坑rosbag --clock
  5. vue 常用功能和命令
  6. Elasticsearch是如何做到快速索引的
  7. sudo: sorry, you must have a tty to run sudo
  8. Python中的图书管理系统
  9. html带取消的谈窗框,HTML参考
  10. tf.nn.rnn_cell.DropoutWrapper用法细节案例2
  11. 时间定位表达式-用于时间的加、减调整
  12. Sublime Text编辑器设置中文
  13. 支持flv视频播放的h5播放器-xgplayer
  14. .gitignore文件不生效
  15. 哈马德国际机场在全球最佳机场评选中排名第一;合肥君悦酒店浪漫呈现“悦-七夕”限定晚宴 | 全球旅报...
  16. Android Notification 详解(各版本对比)——基本操作
  17. 嵌入式系统概论-6-软件与内核
  18. axure流程图模式_Axure 9.0基础教程:没有Visio,也可以快速绘制流程图
  19. bthread源码分析(七)bthread调度逻辑
  20. 蓝桥杯寒假训练----3

热门文章

  1. linux c之用fwrite和fread实现文件的复制
  2. linux C语言之called object ‘maze’ is not a function or function pointer printf(“%d\t“, maze(i, j))
  3. 一、iVX简介(IVX 快速开发教程)
  4. php基础教程 第五步 逻辑控制
  5. python typeerror* wants int_python-TypeError:’int’对象是不可迭代的?
  6. java 矩阵题目_java练习本(原每日一练)(20190517)
  7. 柠檬汁制成的电池可以开动超100千克的车子吗?
  8. 静止的人如何看待高速运动的球?
  9. 你的专业 VS 你妈口中你的专业
  10. 鸿蒙手机启动器apk下载,澪Pro启动器本体下载最新版