redis-cli 详解:Redis 命令行客户端全面指南

该文章已生成可运行项目,

redis-cli 详解:Redis 命令行客户端全面指南

redis-cli 是 Redis 自带的命令行客户端工具,是开发、调试、运维 Redis 服务最常用、最直接的工具。它不仅支持交互式操作,还支持脚本化、批量执行、监控诊断等多种高级功能。

本文将系统性地介绍 redis-cli安装、连接、基本用法、高级技巧、运维命令最佳实践,帮助你全面掌握这个强大工具。


一、redis-cli 简介

  • 全称:Redis Command Line Interface
  • 作用:连接 Redis 服务器并发送命令
  • 特点
    • 轻量、快速、跨平台(Linux/macOS/Windows)
    • 支持文本和原始输出模式
    • 内置性能测试、监控、集群管理等功能
  • 默认端口:6379
  • 默认数据库:0(共 16 个,0-15)

二、基本使用

1. 启动 redis-cli(默认连接本地)

redis-cli

进入交互模式后可直接输入 Redis 命令:

127.0.0.1:6379> SET name "Alice"
OK
127.0.0.1:6379> GET name
"Alice"

2. 连接远程 Redis 服务器

redis-cli -h 192.168.1.100 -p 6379 -a yourpassword
参数说明
-h host指定 Redis 服务器 IP
-p port指定端口(默认 6379)
-a password指定密码(⚠️ 不安全,建议用 -u
-u "redis://user:pass@host:port/db"使用 URL 连接(推荐)

安全推荐方式

redis-cli -h 192.168.1.100 -p 6379
127.0.0.1:6379> AUTH yourpassword

3. 指定数据库

redis-cli -h 127.0.0.1 -p 6379 -n 1

或在连接后切换:

SELECT 1

4. 非交互式执行命令(脚本化)

redis-cli SET name "Bob"
redis-cli GET name

可用于 Shell 脚本中:

#!/bin/bash
NAME=$(redis-cli GET user:1001:name)
echo "User: $NAME"

三、输出格式控制

1. 原始输出(raw mode)

redis-cli --raw GET name
# 输出:Alice(无引号)

适合脚本解析。

2. CSV 输出

redis-cli --csv LRANGE mylist 0 2
# 输出:"a","b","c"

3. 大键分析模式

redis-cli --bigkeys

🔍 功能:扫描 Redis 实例,找出最大的 key(按内存占用),常用于性能优化。

📌 输出示例:

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.

Biggest string found 'user:session:abc' has 1.2MB
Biggest hash found 'user:profile:1001' has 500 fields

用途:发现大 key,避免阻塞主线程。


4. 统计模式(统计请求延迟)

redis-cli --stat

📌 实时显示:

  • 每秒操作数(ops/sec)
  • 已连接客户端数
  • 内存使用
  • key 数量变化

📌 示例输出:

------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections
100    2.10M   10       0      1000 (+0) | 10000

用途:实时监控 Redis 性能趋势。


四、高级功能详解

1. 性能测试:--latency--intrinsic-latency

✅ 测试网络延迟
redis-cli --latency -h 192.168.1.100

持续输出 PING 命令的响应时间(毫秒),用于评估网络质量。

✅ 测试内部延迟(系统瓶颈)
redis-cli --intrinsic-latency 100

运行 100 秒,测试 Redis 自身处理能力(无网络影响),用于判断 CPU、调度是否成为瓶颈。


2. 批量导入数据:--pipe 模式

适用于 大规模数据导入(比逐条 SET 快 10 倍以上)。

示例:导入 100 万个 key
# 生成命令流
for i in {1..1000000}; do
  echo "SET key:$i value-$i"
done | redis-cli --pipe

📌 原理:使用 Redis 的 管道(pipeline)协议 批量传输,减少网络往返。


3. 监听所有命令:--raw + MONITOR

redis-cli MONITOR

实时输出服务器接收到的所有命令,格式如下:

1678901234.123456 [0 192.168.1.100:54321] "SET" "name" "Alice"
1678901235.234567 [0 192.168.1.100:54321] "GET" "name"

用途

  • 调试客户端行为
  • 分析异常请求

⚠️ 注意MONITOR 会影响性能,生产环境慎用。


4. 集群管理命令

查看集群信息
redis-cli -c -h 127.0.0.1 CLUSTER NODES
redis-cli -c -h 127.0.0.1 CLUSTER INFO
进入集群模式(自动重定向)
redis-cli -c -h 127.0.0.1 -p 7000

使用 -c 参数支持 Cluster 模式自动跳转(MOVED/ASK 重定向)。


5. 执行 Lua 脚本

redis-cli EVAL "return redis.call('GET', KEYS[1])" 1 mykey

参数说明:

  • "script":Lua 脚本
  • 1:KEYS 数量
  • mykey:KEYS[1]

也可从文件加载:

redis-cli EVAL "$(cat script.lua)" 1 mykey

五、实用运维命令(通过 redis-cli 执行)

命令用途
INFO查看服务器状态(内存、连接、持久化等)
INFO memory查看内存使用详情
INFO replication查看主从复制状态
INFO cluster查看集群信息
CLIENT LIST查看所有客户端连接
CLIENT KILL ip:port强制断开某个客户端
SLOWLOG GET 10查看最慢的 10 条命令
DBSIZE查看当前库 key 数量
KEYS pattern慎用!扫描 key(建议用 SCAN
FLUSHDB / FLUSHALL清空数据库(生产慎用)
BGSAVE手动触发后台 RDB 持久化
CONFIG GET maxmemory查看配置
CONFIG SET loglevel verbose动态修改配置

六、redis-cli 配置技巧

1. 设置默认连接参数(~/.redisclirc)

创建文件 ~/.redisclirc

set prompt "MyRedis> "
set width 80

支持配置:

  • prompt:自定义提示符
  • width:输出宽度
  • csv / raw:默认输出格式

2. 使用别名简化常用命令

在 Shell 中定义别名:

alias redis-prod='redis-cli -h redis.prod.com -p 6379 -a "$REDIS_PASS"'
alias redis-local='redis-cli -h 127.0.0.1'

七、常见问题与解决

问题原因解决方案
Could not connect to Redis网络不通、服务未启动检查防火墙、Redis 是否运行
(error) NOAUTH密码错误使用 AUTH password-a
(error) MOVED访问了错误的集群节点使用 -c 启用集群模式
命令执行慢大 key、阻塞命令使用 SLOWLOG 分析
OOM command not allowed内存不足检查 maxmemory 策略

八、最佳实践建议

安全方面

  • 避免在命令行中使用 -a password(可能被 ps 查看)
  • 使用 AUTH 命令交互式输入密码
  • 生产环境关闭 FLUSHALL:在 redis.confrename-command FLUSHALL ""

性能方面

  • 大数据导入用 --pipe
  • 避免 KEYS *,改用 SCAN
  • 监控大 key:定期运行 --bigkeys

运维方面

  • 使用 --stat 监控性能趋势
  • 使用 --latency 检测网络延迟
  • 定期检查 INFOSLOWLOG

九、总结:redis-cli 核心能力图谱

能力命令/参数
🔹 基础连接redis-cli -h -p -a -n
🔹 脚本执行直接传命令或管道
🔹 输出控制--raw, --csv
🔹 性能诊断--latency, --intrinsic-latency, --stat
🔹 大 key 分析--bigkeys
🔹 批量导入--pipe
🔹 实时监控MONITOR
🔹 集群支持-c, CLUSTER NODES/INFO
🔹 Lua 脚本EVAL
🔹 运维管理INFO, SLOWLOG, CLIENT, CONFIG

结语
redis-cli 不只是一个“命令行工具”,更是 Redis 开发与运维的瑞士军刀。熟练掌握其各种模式和技巧,能极大提升工作效率,快速定位问题,保障系统稳定。

📚 官方文档:https://redis.io/docs/manual/cli/
🛠 推荐组合:redis-cli + INFO + SLOWLOG + --bigkeys = 完整的 Redis 健康检查套件。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值