当前位置: 首页 > news >正文

05-Redis 命令行客户端(redis-cli)实操指南:从连接到返回值解析

目录

  • 引言
  • 一、redis-cli——Redis 学习的 “第一工具”
  • 二、redis-cli 连接 Redis 服务:两种方式任选
    • 2.1 方式一:直接连接(默认配置,适合本地默认服务)
    • 2.2 方式二:自定义连接(指定 IP / 端口 / 密码,适合远程或自定义服务)
      • (1)指定 IP 和端口连接
      • (2)带密码连接
      • (3)连接测试:用 PING 命令验证
  • 三、redis-cli 核心操作:常用命令实战
    • 3.1 数据操作命令(基础示例)
      • (1)String 类型:存储单个值、计数器
      • (2)Hash 类型:存储对象数据(如用户信息)
      • (3)键管理命令:查看、判断、删除键
    • 3.2 服务管理命令:查看状态、获取配置
  • 四、Redis 命令返回值:5 种类型及解读方法
    • 4.1 状态回复:命令执行成功的 “信号”
    • 4.2 错误回复:命令执行失败的 “提示”
    • 4.3 整数回复:返回整数结果(计数、统计)
    • 4.4 字符串回复:返回单个字符串或空值
    • 4.5 多行字符串回复:返回多个数据(列表、集合)
  • 五、redis-cli 使用技巧:提升效率的 3 个方法
    • 5.1 交互模式 vs 命令模式:按需选择
    • 5.2 命令补全:按 Tab 键少输错
    • 5.3 清屏与退出:快速整理界面
  • 六、总结:redis-cli 学习的 “两步走”

引言

在 Redis 学习与使用中,redis-cli(Redis Command Line Interface)是最基础也最核心的工具 —— 它不仅是新手入门的 “第一扇门”,也是运维人员排查问题的 “常用武器”。很多新手会因不懂连接方式、误解返回值类型,导致 “明明执行了命令却没效果”“看到报错不知道如何排查”。本文将从 redis-cli 的连接方法讲起,逐步拆解核心操作与返回值类型,搭配实操案例,帮你彻底掌握这款工具的使用技巧。

一、redis-cli——Redis 学习的 “第一工具”

提到 Redis 客户端,有人会想到图形化工具(如 Redis Desktop Manager),但 redis-cli 始终是无法替代的:它是 Redis 官方自带的客户端,无需额外安装,支持所有 Redis 命令;启动速度快,能直接在终端 / 命令行中操作,适合快速测试与脚本集成;更重要的是,理解 redis-cli 的使用逻辑,能帮你更深入地理解 Redis 命令的执行流程。
在这里插入图片描述
无论是验证 Redis 服务是否正常、测试数据结构命令,还是排查生产环境的服务状态,redis-cli 都是首选工具。掌握它,相当于掌握了 Redis 操作的 “基本功”。

二、redis-cli 连接 Redis 服务:两种方式任选

redis-cli 支持两种连接方式,分别对应 “单条命令执行” 和 “批量命令交互” 场景,新手可根据需求灵活选择。

2.1 方式一:直接连接(默认配置,适合本地默认服务)

如果你的 Redis 服务运行在本地(127.0.0.1),且使用默认端口(6379)、无密码,可直接在终端 / 命令提示符中输入 redis-cli,无需任何参数:

# Windows/macOS/Linux 通用命令
redis-cli

执行后若显示类似 127.0.0.1:6379> 的提示符,说明连接成功 —— 其中 127.0.0.1 是 Redis 服务的 IP 地址,6379 是端口号,冒号后为命令输入区。
在这里插入图片描述

这种方式的本质是 redis-cli 自动加载默认配置(IP:127.0.0.1,端口:6379),适合本地开发测试场景,无需手动输入额外信息。

2.2 方式二:自定义连接(指定 IP / 端口 / 密码,适合远程或自定义服务)

当 Redis 服务不在本地、端口修改过(如 6380),或设置了登录密码时,需要通过参数指定连接信息。redis-cli 常用连接参数如下:

  • -h:指定 Redis 服务的 IP 地址(Host);

  • -p:指定 Redis 服务的端口号(Port);

  • -a:指定登录密码(Auth,仅适合测试,生产环境不推荐明文传密码)。

(1)指定 IP 和端口连接

例如,连接运行在 192.168.1.100 服务器、6380 端口的 Redis 服务:

# 格式:redis-cli -h [IP地址] -p [端口号]
redis-cli -h 192.168.1.100 -p 6380

执行后提示符变为 192.168.1.100:6380>,表示已连接到目标服务。

(2)带密码连接

若 Redis 服务设置了密码(如 Redis@123),有两种安全的连接方式:

  • 方式一:先连接,再输入密码(推荐,避免密码明文暴露):

    # 1. 连接服务
    redis-cli -h 127.0.0.1 -p 6379
    # 2. 输入密码验证(返回 OK 表示验证通过)
    127.0.0.1:6379> AUTH Redis@123
    OK
    
  • 方式二:连接时通过 -a 参数传密码(仅用于测试,明文密码会被日志记录):

    redis-cli -h 127.0.0.1 -p 6379 -a Redis@123
    

(3)连接测试:用 PING 命令验证

无论哪种连接方式,都建议用 PING 命令验证连接是否正常 —— 执行 PING 后,若返回 PONG,说明连接成功;若返回 (error) Could not connect to Redis,需排查 IP、端口是否正确,或服务是否启动。

127.0.0.1:6379> PING
PONG  # 连接正常

执行效果如下图:
在这里插入图片描述

三、redis-cli 核心操作:常用命令实战

连接成功后,即可通过 redis-cli 执行 Redis 命令。下面从 “数据操作” 和 “服务管理” 两类场景,介绍新手必学的核心命令,所有命令在 Windows/macOS/Linux 中通用。

3.1 数据操作命令(基础示例)

Redis 支持多种数据结构,这里以最常用的 String(字符串)Hash(哈希)键管理 为例,演示命令使用:

(1)String 类型:存储单个值、计数器

  • SET key value:设置键值对(如存储用户昵称);

  • GET key:获取键对应的值;

  • INCR key:将数值类型的键自增 1(适合计数器)。

# 设置键 name 的值为 "redis-cli"
127.0.0.1:6379> SET name "redis-cli"
OK  # 状态回复,执行成功# 获取键 name 的值
127.0.0.1:6379> GET name
"redis-cli"  # 字符串回复,返回值# 设置计数器 count 初始值为 0,再自增
127.0.0.1:6379> SET count 0
OK
127.0.0.1:6379> INCR count
(integer) 1  # 整数回复,返回自增后的值

(2)Hash 类型:存储对象数据(如用户信息)

  • HSET key field value:给哈希键设置字段和值;

  • HGET key field:获取哈希键中某个字段的值;

  • HGETALL key:获取哈希键中所有字段和值。

# 给哈希键 user:1 设置 name(张三)、age(25)字段
127.0.0.1:6379> HSET user:1 name "张三" age 25
(integer) 2  # 整数回复,返回设置的字段数量# 获取 user:1 的 name 字段值
127.0.0.1:6379> HGET user:1 name
"张三"  # 字符串回复# 获取 user:1 的所有字段和值
127.0.0.1:6379> HGETALL user:1
1) "name"  # 多行字符串回复,奇数行为字段,偶数行为值
2) "张三"
3) "age"
4) "25"

(3)键管理命令:查看、判断、删除键

  • KEYS pattern:查看符合规则的所有键(* 表示所有键);

  • EXISTS key:判断键是否存在(返回 1 存在,0 不存在);

  • DEL key:删除指定键(返回 1 删除成功,0 键不存在)。

# 查看所有键
127.0.0.1:6379> KEYS *
1) "name"
2) "count"
3) "user:1"# 判断键 name 是否存在
127.0.0.1:6379> EXISTS name
(integer) 1  # 存在# 删除键 count
127.0.0.1:6379> DEL count
(integer) 1  # 删除成功# 再次查看键,count 已消失
127.0.0.1:6379> KEYS *
1) "name"
2) "user:1"

3.2 服务管理命令:查看状态、获取配置

除了数据操作,redis-cli 还能执行服务管理命令,帮助排查问题:

  • INFO:查看 Redis 服务的详细状态(如内存使用、连接数、持久化情况);

  • CONFIG GET parameter:获取指定配置项的值(如查看端口、密码配置);

  • QUIT:退出 redis-cli 客户端(或直接按 Ctrl+C)。

# 查看 Redis 版本和内存使用(截取部分输出)
127.0.0.1:6379> INFO
# Server
redis_version:7.0.12
redis_git_sha1:00000000
...
# Memory
used_memory:864568 bytes
used_memory_human:844.28K
...# 获取端口配置(返回配置项和值)
127.0.0.1:6379> CONFIG GET port
1) "port"
2) "6379"# 退出客户端
127.0.0.1:6379> QUIT

四、Redis 命令返回值:5 种类型及解读方法

执行 Redis 命令后,redis-cli 会返回不同格式的结果,新手常因看不懂返回值类型而误判命令是否执行成功。其实 Redis 的返回值分为 5 类,每种类型都有明确的格式特征,掌握后能快速解读结果。

4.1 状态回复:命令执行成功的 “信号”

格式:直接返回状态信息(无特殊前缀),最常见的是 OKPONG
适用场景:执行 SETHSETAUTHPING 等命令,仅需确认 “是否成功”,无需返回数据。
示例

127.0.0.1:6379> SET age 20
OK  # 状态回复,设置成功
127.0.0.1:6379> PING
PONG  # 状态回复,连接正常

4.2 错误回复:命令执行失败的 “提示”

格式:以 (error) 开头,后面紧跟错误原因。
适用场景:命令拼写错误、参数格式不对、权限不足等情况。
示例

# 执行不存在的命令 ERRORCMD
127.0.0.1:6379> ERRORCMD
(error) ERR unknown command 'ERRORCMD'  # 错误回复,命令不存在# 未验证密码直接执行命令
127.0.0.1:6379> GET name
(error) NOAUTH Authentication required.  # 错误回复,需先执行 AUTH

解读技巧:根据错误信息调整操作,如检查命令拼写、先执行 AUTH 验证密码。

4.3 整数回复:返回整数结果(计数、统计)

格式:以 (integer) 开头,后面紧跟整数。
适用场景INCR(自增)、EXISTS(判断键存在)、DBSIZE(键数量)等需要返回数字的命令。
示例

# 自增计数器,返回自增后的值
127.0.0.1:6379> INCR view_count
(integer) 101# 判断键 age 是否存在(1 存在,0 不存在)
127.0.0.1:6379> EXISTS age
(integer) 1# 查看当前数据库的键数量
127.0.0.1:6379> DBSIZE
(integer) 3

4.4 字符串回复:返回单个字符串或空值

格式

  • 正常结果:以双引号 "" 包裹的字符串;

  • 空值:返回 (nil)(表示键不存在或无数据)。

适用场景GET(获取 String 值)、HGET(获取 Hash 字段值)等返回单个数据的命令。
示例

# 获取存在的键 name 的值
127.0.0.1:6379> GET name
"redis-cli"  # 字符串回复,正常结果# 获取不存在的键 noexist 的值
127.0.0.1:6379> GET noexist
(nil)  # 字符串回复,空值

4.5 多行字符串回复:返回多个数据(列表、集合)

格式:每行数据前带序号(如 1) "key1"2) "key2"),序号从 1 开始递增。
适用场景KEYS(查看所有键)、HGETALL(查看 Hash 所有字段)、LRANGE(查看 List 元素)等返回多个数据的命令。
示例

# 查看所有键,返回 3 个结果
127.0.0.1:6379> KEYS *
1) "name"
2) "user:1"
3) "view_count"# 查看 Hash 键 user:1 的所有字段和值,返回 4 个结果
127.0.0.1:6379> HGETALL user:1
1) "name"
2) "张三"
3) "age"
4) "25"

五、redis-cli 使用技巧:提升效率的 3 个方法

掌握基础操作后,用以下技巧能大幅提升 redis-cli 的使用效率,新手也能快速上手。

5.1 交互模式 vs 命令模式:按需选择

redis-cli 支持两种使用模式,可根据操作频率切换:

  • 交互模式:直接输入 redis-cli 进入,可连续输入多条命令(如前面的案例),适合频繁操作;

  • 命令模式:将命令作为 redis-cli 的参数,执行后直接返回结果,无需进入交互界面,适合单条命令或脚本集成。

示例(命令模式执行 GET name):

# Windows/macOS/Linux 通用,执行后直接返回结果
redis-cli GET name
"redis-cli"

5.2 命令补全:按 Tab 键少输错

redis-cli 支持命令补全功能 —— 输入命令前缀后按 Tab 键,会自动补全命令或显示可选命令,避免拼写错误。
示例:

  • 输入 HETab 键,会补全为 HSETHGETHGETALL 等 Hash 相关命令;

  • 输入 GETTab 键,会补全为 GETGETEXGETRANGE 等命令。

5.3 清屏与退出:快速整理界面

  • 清屏:在交互模式中输入 CLEAR 并回车,可清空终端 / 命令提示符界面(Windows 也可用 cls 命令);

  • 退出:输入 QUIT 或直接按 Ctrl+C,即可退出 redis-cli 客户端,不影响 Redis 服务运行。

六、总结:redis-cli 学习的 “两步走”

redis-cli 的学习无需一蹴而就,可按 “两步走” 掌握:

  1. 第一步:熟练基础操作:先掌握 “连接服务→执行数据命令→解读返回值” 的流程,重点记住 String、Hash 的常用命令,以及 5 种返回值的格式特征,能独立完成简单的数据存储与查询;

  2. 第二步:掌握进阶技巧:尝试用命令模式执行单条命令,用 INFOCONFIG GET 等命令排查服务问题,逐步适应 redis-cli 在实际开发与运维中的使用场景。

作为 Redis 最基础的工具,redis-cli 是后续学习数据结构、持久化、集群的 “敲门砖”。只有熟练使用它,才能更高效地理解 Redis 的核心功能,为后续进阶打下坚实基础。


文章转载自:

http://ToSbOqlJ.ttkns.cn
http://aVMsTOCG.ttkns.cn
http://S9ObJSeZ.ttkns.cn
http://grYEUaWv.ttkns.cn
http://HXiqCcpb.ttkns.cn
http://w7C13De0.ttkns.cn
http://FiG6rjED.ttkns.cn
http://8URnG7Se.ttkns.cn
http://OMeoxRl6.ttkns.cn
http://TDtJxrvH.ttkns.cn
http://6TLlx16v.ttkns.cn
http://oNNsQbaY.ttkns.cn
http://YwhPvsvX.ttkns.cn
http://sNVfez6G.ttkns.cn
http://f8lCLibz.ttkns.cn
http://6tJoo77o.ttkns.cn
http://i0AlM0YC.ttkns.cn
http://ZkwqWHo9.ttkns.cn
http://mmbkB5xG.ttkns.cn
http://vVzV4sMb.ttkns.cn
http://cfFC0lyd.ttkns.cn
http://8Ck4TIw4.ttkns.cn
http://UaPQK6iJ.ttkns.cn
http://vNRVc1sT.ttkns.cn
http://8E6Nr83B.ttkns.cn
http://MLPZRXzc.ttkns.cn
http://fTQR9kgx.ttkns.cn
http://lIoBia7l.ttkns.cn
http://dncQRQel.ttkns.cn
http://NWXLE6LF.ttkns.cn
http://www.dtcms.com/a/375837.html

相关文章:

  • shell函数+数组+运算+符号+交互
  • 群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书
  • 照明控制设备工程量计算 -图形识别超方便
  • Matlab通过FFT快速傅里叶变换提取频率
  • iis 高可用
  • 有趣的数学 贝塞尔曲线和毕加索
  • 基于STM32的智能宠物小屋设计
  • STM32之RS485与ModBus详解
  • DCDC输出
  • GitHub 项目提交完整流程(含常见问题与解决办法)
  • Day39 SQLite数据库操作与文本数据导入
  • python常用命令
  • 广东省省考备考(第九十五天9.9)——言语、资料分析、判断推理(强化训练)
  • MySQL问题8
  • 【AI】Jupyterlab中关于TensorFlow版本问题
  • Java 运行时异常与编译时异常以及异常是否会对数据库造成影响?
  • CosyVoice2简介
  • 新机快速搭建java开发环境过程记录
  • std::enable_shared_from_this
  • Spring Boot--Bean的扫描和注册
  • Pytorch基础入门3
  • ARM-指令集全解析:从基础到高阶应用
  • ARM 汇编学习
  • 今天继续昨天的正则表达式进行学习
  • Mysql集群——MHA高可用架构
  • 【一包通刷】晶晨S905L(B)/S905L2(B)/S905L3(B)-原机安卓4升级安卓7/安卓9-通刷包
  • SYSTEM 提权面板:提升文件运行权限的高效工具
  • 【Python】S1 基础篇 P6 用户交互与循环控制:构建动态交互程序
  • Java 数据类型详解
  • java常见SSL bug解决方案