> 技术文档 > redis-cli 详解:Redis 命令行客户端全面指南_redis cli

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


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\"OK127.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 6379127.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/bashNAME=$(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.2MBBiggest hash found \'user:profile:1001\' has 500 fields

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


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

redis-cli --stat

📌 实时显示:

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

📌 示例输出:

------- data ------ --------------------- load -------------------- - child -keys mem clients blocked requests connections100 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 NODESredis-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(建议用 SCANFLUSHDB / 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 健康检查套件。