Redis 是一个高性能的键值存储系统,常用于缓存、消息队列和会话管理等场景,在开发和运维过程中,我们经常需要通过命令行工具与 Redis 服务器进行交互,而 Telnet 是一种常用的网络协议,可用于测试 Redis 服务器的连通性和基本命令执行,本文将详细介绍如何使用 Telnet 命令连接 Redis 服务器,并执行相关操作。

确保你的系统已安装 Telnet 客户端,在 Linux 或 macOS 系统中,通常默认已安装;在 Windows 系统中,可通过“启用或关闭 Windows 功能”中的 Telnet 客户端选项进行安装,使用 Telnet 命令连接 Redis 服务器,基本语法为 telnet <Redis服务器IP> <端口号>
,其中默认端口号为 6379,连接本地 Redis 服务器可执行 telnet 127.0.0.1 6379
,连接成功后,会显示类似 Connected to 127.0.0.1
的提示,并进入 Telnet 的交互模式。
在 Telnet 交互模式下,可以直接输入 Redis 命令并按回车执行,Redis 命令通常以 RESP(Redis Serialization Protocol)格式传输,简单字符串、错误、整数、批量字符串和数组等类型均有特定的前缀标识,执行 SET key value
命令时,需输入 SET mykey "hello"
,Redis 会返回 +OK
表示操作成功;执行 GET key
命令时,输入 GET mykey
,Redis 会返回 $5
后跟 hello
,表示返回的字符串长度为 5,需要注意的是,Telnet 不会自动添加命令的结束符,因此必须手动输入完整的命令格式。
以下是常用 Redis 命令在 Telnet 中的执行示例及返回结果:
命令 | 输入示例 | 返回结果说明 |
---|---|---|
SET | SET name "Redis" | +OK (设置成功) |
GET | GET name | $5 后跟 Redis (返回值) |
INCR | INCR counter | 1 (整数递增结果) |
LPUSH | LPUSH list "item" | 1 (列表长度变化) |
HSET | HSET user "name" "Alice" | 1 (哈希字段设置成功) |
QUIT | QUIT | 连接关闭 |
在使用 Telnet 测试 Redis 时,需要注意以下几点:确保 Redis 服务器已启动并监听指定端口,可通过 netstat -tuln | grep 6379
检查;Redis 默认可能不允许远程连接,需修改配置文件 redis.conf
中的 bind
选项为 0.0.0
或特定 IP,并注释掉 protected-mode yes
;生产环境中建议使用 redis-cli
客户端,因为 Telnet 不支持 Redis 的认证密码功能(除非手动发送 AUTH password
命令),且调试复杂命令时效率较低。

Telnet 的文本传输模式可能无法正确处理二进制数据,因此在测试包含特殊字符的键或值时需谨慎,如果键名包含空格或换行符,需确保使用双引号包裹,否则会导致命令解析错误,若需测试管道(Pipeline)功能,即一次性发送多个命令并批量接收结果,可在 Telnet 中连续输入多行命令,每行以 \r\n
然后一次性读取所有响应。
Telnet 是一种轻量级的 Redis 连接测试工具,适合快速验证服务器连通性和简单命令执行,但在复杂场景下建议使用专业的 redis-cli
客户端,通过掌握 Telnet 与 Redis 的交互方式,可以更高效地进行故障排查和功能验证。
相关问答 FAQs:
-
问:为什么使用 Telnet 连接 Redis 时提示“Connection refused”?
答:该错误通常由以下原因导致:① Redis 服务器未启动,需通过redis-server
命令启动服务;② Redis 未监听指定端口,检查redis.conf
中的port
配置或防火墙设置;③ 目标 IP 或端口错误,确认连接参数无误,可通过telnet <IP> <端口>
单独测试端口连通性。(图片来源网络,侵删) -
问:Telnet 能否执行 Redis 的订阅(SUBSCRIBE)命令?
答:可以,但体验较差,订阅命令是阻塞式的,Telnet 会持续等待消息推送,无法同时执行其他命令,输入SUBSCRIBE channel1
后,会进入监听模式,接收到的消息会实时显示,但若需取消订阅,需另开一个 Telnet 连接发送UNSUBSCRIBE
命令,建议生产环境使用redis-cli
的--subscribe
参数或专门的客户端工具。