Redis问题排查常用命令
云原生学习路线导航页(持续更新中)
- kubernetes学习系列快捷链接
- Kubernetes架构原则和对象设计(一)
- Kubernetes架构原则和对象设计(二)
- Kubernetes架构原则和对象设计(三)
- Kubernetes控制平面组件:etcd(一)
- Kubernetes控制平面组件:etcd(二)
- kubectl 和 kubeconfig 基本原理
- kubeadm 升级 k8s集群 1.17到1.20
- Kubernetes常见问题解答
- 查看云机器的一些常用配置
本文记录中间件Redis的常用运维命令,包括Redis基础命令和Sentinel运维命令
1.Redis命令
-
查看redis版本
# 机器中 redis-server --version #redis命令行: INFO server
-
登陆redis命令行、sentinel命令行
- redis-cli -p 6379 -a xxxxxx
- redis-cli -p 26379 -a xxxxxx
- 不直接输入密码的话,进入命令行后:auth 密码
-
数据备份
-
数据恢复
2.Sentinel命令
2.1.日志常见关键字
+sdown:主观下线。
+odown:客观下线。
+failover-state:故障转移状态。
+switch-master:主从切换完成。
+sdown: Sentinel 检测到某个 Redis 实例主观下线(Subjectively Down)。
+odown: Sentinel 检测到某个 Redis 实例客观下线(Objectively Down)。
+vote-for-leader: Sentinel 开始投票选举新的 Leader。
+elected-leader: Sentinel 选举出新的 Leader。
+failover-state: Sentinel 进入故障转移状态。
+slave: Sentinel 将某个从节点提升为新的 Master。
+switch-master: Sentinel 完成主从切换,并更新配置。
+reboot 表示 Sentinel 检测到 Master 重新启动或重新连接。(如果只有 +reboot,说明 Sentinel 认为 Master 只是暂时不可用,而不是真正下线。)
PING:Sentinel 定期发送的探活命令。
reply 或 no reply:Sentinel 是否收到 Redis 实例的响应。
quorum:与客观下线(ODOWN)相关的仲裁逻辑。
2.2.检查 Sentinel 配置
# 查看主节点信息。每一条都是一个redis集群的master,下面的master-name即从这里获取
SENTINEL masters
# 查看从节点信息
SENTINEL slaves <master-name>
# 查看 Sentinel 节点列表
SENTINEL sentinels <master-name>
# 获取主节点地址
SENTINEL get-master-addr-by-name <master-name>
# 修改一个redis主从集群的down-after-milliseconds
SENTINEL SET <master_name> down-after-milliseconds <milliseconds>
- 关键配置参数:
- down-after-milliseconds <毫秒>:Sentinel 判定实例不可用的超时时间。master下线不超过这个时间,只会认为redis实例抖动,不会切主
- quorum:触发客观下线(ODOWN)所需的 Sentinel 投票数。
2.3.检查网络问题
2.3.1.测试网络连通性
# 检查 Redis 实例端口是否可达
telnet <redis-ip> <redis-port>
# 测试网络延迟和丢包
ping <redis-ip>
traceroute <redis-ip>
# 检查防火墙规则
iptables -L -n | grep <redis-port>
2.3.2.检查 Redis 实例负载
- 如果 Redis 实例负载过高,可能导致 Sentinel 的 PING 超时:
# 连接 Redis 实例查看状态 redis-cli -h <redis-ip> -p <redis-port> INFO # 关注输出中的以下字段: - instantaneous_ops_per_sec # 当前操作数 - used_memory # 内存使用量 - connected_clients # 客户端连接数 - latency # 延迟(需 Redis 4.0+)
2.4.分析问题时间线与逻辑