1.4 Redis服务端和客户端

目录

[1.4 Redis服务端和客户端](#1.4 Redis服务端和客户端)

示例:

总结

[1.5 连接Redis客户端](#1.5 连接Redis客户端)

[1.6 向Redis服务端发送命令](#1.6 向Redis服务端发送命令)


1.4 Redis服务端和客户端

用户→Client→引擎 的分层架构模式

  1. Redis 服务端
    核心进程:
  • redis-server,是 Redis 的实际运行引擎,在后台持续运行。
    核心职责:
  • 存储和管理数据
  • 执行 Redis 命令
  • 处理持久化、主从同步等核心功能
  • 监听指定 IP 和端口(默认 127.0.0.1:6379),被动等待客户端连接
  1. Redis 客户端
    核心工具:
  • redis-cli(Redis 自带的命令行客户端),是开发者与服务端交互的唯一入口。
    核心职责:
  • 主动发起连接,与服务端建立通信
  • 接收用户输入的命令,发送给服务端
  • 接收服务端的返回结果并展示给用户
  • 支持通过 -h/-p/-a 参数指定连接的 IP、端口和密码
  1. 客户端和服务端的交互流程
示例:
  • 启动服务端
    执行:./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服务后,可以在命令行发送命令。

  1. ping
    Redis提供了PING命令来测试客户端与Redis的连接是否正常,如果连接正常会收到回复PONG

  2. echo
    Redis 的 echo 命令就是 "回显 / 回声" :你给 Redis 服务端传一个字符串,它会原封不动地返回这个字符串。

    echo "你要回显的内容"

用途

  • 调试 Redis 服务是否正常响应(相当于 "ping" 的增强版,不仅验证连通性,还验证数据传输是否正常);
  • 测试客户端与服务端的字符编码、数据传输是否有问题。

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

    set key value

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

相关推荐
LSL666_1 小时前
1.7 Redis多数据库
数据库·redis·缓存
低代码布道师2 小时前
Next.js 16 全栈实战(三):数据库建模与动态菜单实现
开发语言·javascript·数据库
远方16092 小时前
114-Oracle Database 26ai在Oracle Linux 9上的OUI图形界面安装
linux·服务器·数据库·sql·oracle·database
heimeiyingwang2 小时前
向量数据库Milvus的安装部署指南
java·数据库·架构·database
一次旅行2 小时前
缓存介绍和总结
缓存·测试总结
山岚的运维笔记2 小时前
SQL Server笔记 -- 第50章 存储过程
数据库·笔记·sql·microsoft·oracle·sqlserver
LSL666_3 小时前
10 集群
java·开发语言·数据库·redis·集群
TDengine (老段)3 小时前
TDengine IDMP 数据可视化 7. 事件列表
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
SQL必知必会3 小时前
SQL 条件聚合:超越基础 GROUP BY
数据库·sql