目录
[1.4 Redis服务端和客户端](#1.4 Redis服务端和客户端)
[1.5 连接Redis客户端](#1.5 连接Redis客户端)
[1.6 向Redis服务端发送命令](#1.6 向Redis服务端发送命令)
1.4 Redis服务端和客户端
用户→Client→引擎 的分层架构模式
- Redis 服务端
核心进程:
- redis-server,是 Redis 的实际运行引擎,在后台持续运行。
核心职责: - 存储和管理数据
- 执行 Redis 命令
- 处理持久化、主从同步等核心功能
- 监听指定 IP 和端口(默认 127.0.0.1:6379),被动等待客户端连接
- Redis 客户端
核心工具:
- redis-cli(Redis 自带的命令行客户端),是开发者与服务端交互的唯一入口。
核心职责: - 主动发起连接,与服务端建立通信
- 接收用户输入的命令,发送给服务端
- 接收服务端的返回结果并展示给用户
- 支持通过 -h/-p/-a 参数指定连接的 IP、端口和密码
- 客户端和服务端的交互流程
示例:
- 启动服务端
执行:./bin/redis-server ./conf/redis.conf
效果:服务端进程启动,监听 6379 端口,等着接指令(但此时没人能指挥它)。 - 启动客户端
执行:./bin/redis-cli → 客户端连接本机 6379 端口的服务端; - 客户端发指令
比如输入:ping → 客户端把「ping」指令传给服务端。 - 服务端执行 + 返回结果
服务端执行「ping」→ 返回「PONG」给客户端; - 客户端显示
客户端把「PONG」显示在终端,你能看到结果; - 停止 Redis
输入shutdown save → 客户端传指令给服务端 → 服务端先持久化数据,再自己停止进程。
总结
服务端是 "干活的"(存数据、执行命令),客户端是 "传话筒"(输命令、显结果);
必须先启动redis-server(服务端),再启动redis-cli(客户端),否则客户端连不上;
所有 Redis 命令(包括停止)都是客户端发、服务端执行,客户端只负责交互,不做实际处理。
1.5 连接Redis客户端
redis-cli 是命令行客户端,仅用于手动输入命令直接操作 Redis 服务端。
./redis-cli -h 目标IP -p 目标端口 -a 密码
-h:连接目标 IP 服务器上对应端口的 Redis 服务端。省略代表连接本机的Redis。
-a:密码认证,只有Redis设置了密码才需要。Redis 服务端本身开启了密码认证,任何客户端(包括 redis-cli)想要连接并操作该服务端,都必须验证密码。每次连接客户端都需要密码验证。

如果连接的时候,不加-a,链接后就需要手动输入auth 密码。
注:上面的参数,都可以省略,省略就是连接本机的端口为6379的Redis并且不进行密码认证。

1.6 向Redis服务端发送命令
redis-cli连上redis服务后,可以在命令行发送命令。
-
ping
Redis提供了PING命令来测试客户端与Redis的连接是否正常,如果连接正常会收到回复PONG

-
echo
Redis 的 echo 命令就是 "回显 / 回声" :你给 Redis 服务端传一个字符串,它会原封不动地返回这个字符串。echo "你要回显的内容"
用途
- 调试 Redis 服务是否正常响应(相当于 "ping" 的增强版,不仅验证连通性,还验证数据传输是否正常);
- 测试客户端与服务端的字符编码、数据传输是否有问题。

和ping的区别 - ping:只返回 PONG,仅验证 "服务通了";
- echo "foo":返回 "foo",验证 "服务通了 + 数据传输正常 + 编码没问题"。
注:命令行中,只要内容是纯字母 / 数字(无空格、特殊符号),加不加双引号都可以;如果内容包含空格 / 特殊字符(比如 echo hello world),必须加双引号,否则 Redis 会把空格后的内容当成多余参数报错。
-
set/get
使用set和get可以向redis设置数据、获取数据。set key value

这个操作默认用的是 Redis 的 0 号库(编号为 0 的数据库)