资讯动态

2.背景知识和环境搭建【由浅入深-redis】

发布时间:2026/10/9 15:33:39 来源:尧图企业网站定制
文章目录第一章 初识 Redis1.1 Redis 特性1.1.1 基于内存的数据存储1.1.2 丰富的数据操作能力1.1.3 可编程能力1.1.4 可扩展能力1.1.5 持久化能力1.1.6 集群能力1.1.7 高可用能力1.1.8 Redis 为什么快1.2 Redis 使用场景1.2.1 缓存数据库1.2.2 搜索结果缓存1.2.3 Session 会话存储1.2.4 消息队列1.2.5 Redis 不适合存储什么第二章 Redis 安装与运行配置2.1 Redis 安装方式选择2.2 Redis 6.2.17 源码安装补充查看系统环境hostnamectl补充 /usr/local/src 目录作用为什么选择 /usr/local/src2.2.1 安装环境准备2.2.2 Redis 源码下载与编译2.2.3 Redis 程序安装2.3 Redis 运行环境配置2.3.1 Redis 配置文件管理2.3.2 Redis 网络访问配置2.3.3 Redis 后台运行配置2.3.4 Redis 数据与日志配置2.4 Redis 服务启动与管理2.4.1 Redis 启动与连接验证2.4.2 Redis 服务停止2.4.3 systemd 管理 Redis第三章 Redis 基础运行模型与客户端访问3.1 Redis 服务端管理3.1.1 Redis 服务启动3.1.2 Redis 服务停止3.2 Redis 客户端与服务端模型3.3 Redis 客户端类型3.3.1 命令行客户端 redis-cli3.3.2 图形化客户端3.3.3 基于 Redis API 的客户端3.4 Redis 基本运行流程第一章 初识 RedisRedisRemote Dictionary Server是一种基于内存的高性能键值数据库主要用于解决传统数据库在高并发场景下面临的访问压力问题。与 MySQL 这类关系型数据库不同Redis 不依赖复杂的表结构存储数据而是通过键值Key-Value的方式组织数据并将数据主要保存在内存中因此能够提供极低的访问延迟和极高的读写性能。在实际分布式系统中Redis 通常并不是完全替代数据库而是作为数据库之外的重要缓存和数据处理组件与 MySQL 等持久化存储共同组成完整的数据架构。例如MySQL 负责保存完整业务数据Redis 负责保存访问频率较高的数据通过减少数据库访问次数提升系统整体性能。1.1 Redis 特性Redis 能够广泛应用于互联网系统主要依赖于其在数据结构、性能、扩展能力以及高可用方面提供的特性。1.1.1 基于内存的数据存储Redis 最核心的特点是基于内存存储数据。传统关系型数据库例如 MySQL主要通过磁盘文件保存数据。数据需要经过磁盘 I/O 操作才能完成读取和写入而磁盘访问速度相对较慢在高并发访问情况下容易成为系统瓶颈。Redis 则主要将数据保存在内存中客户端访问数据时可以直接从内存读取因此具有更低的访问延迟。Redis 使用键值Key-Value结构存储数据其中 Key 作为数据唯一标识Value 则可以保存多种不同的数据结构。Redis 的 key 都是字符串/二进制序列value 才可以是 string、list、hash、set、zset、stream 等类型。例如key → value user:1001 → 用户信息 product:2001 → 商品信息 session:abc → 登录状态Redis 支持多种数据结构包括String字符串Hash哈希List列表Set集合Sorted Set有序集合Stream流这些数据结构使 Redis 不仅可以作为简单缓存使用还能够满足计数、排行榜、消息处理等多种业务需求。1.1.2 丰富的数据操作能力Redis 不只是简单保存字符串而是针对不同数据结构提供了丰富的操作命令。例如对于 String 类型可以直接进行字符串存储也可以用于计数场景Hash 类型适合保存对象结构数据List 可以实现消息队列中的先进先出结构Sorted Set 可以根据分值实现排行榜功能。相比传统数据库需要通过 SQL 语句完成数据查询和处理Redis 可以直接针对内存中的数据结构进行操作使很多业务场景下的数据处理更加高效。1.1.3 可编程能力Redis 支持通过 Lua 脚本以及服务端扩展能力完成更加复杂的数据处理逻辑。传统模式下客户端通常需要多次请求 Redis 执行多个操作客户端 | | 请求1 ↓ Redis | | 请求2 ↓ Redis多次网络通信会增加额外开销。Redis 通过 Lua 脚本可以将多个操作封装到服务器端一次执行将复杂逻辑放在 Redis 内部完成从而减少网络交互提高执行效率。Lua 是一种轻量级脚本语言Redis 使用 Lua 作为服务端脚本支持语言可以在 Redis 内部执行自定义逻辑。1.1.4 可扩展能力Redis 提供了扩展机制可以基于 Redis 原有能力进行功能扩展。Redis 提供了模块 API开发者可以通过 C、C、Rust 等语言编写 Redis 模块将新的数据类型或者功能集成到 Redis 中。例如使用 Redis 原生提供的数据结构完成基础缓存通过模块扩展新的数据处理能力根据业务需求增强 Redis 功能。这种扩展机制使 Redis 不仅是一个固定功能的缓存数据库而是具有一定可扩展能力的数据平台。1.1.5 持久化能力虽然 Redis 是基于内存的数据存储系统但它同样支持数据持久化。由于 Redis 数据主要存放在内存中如果服务器发生故障或者进程退出内存中的数据可能会丢失。因此 Redis 提供持久化机制可以将内存中的数据保存到磁盘中。Redis 持久化主要用于解决两个问题防止 Redis 重启后数据全部丢失在服务器恢复后能够重新加载之前的数据状态。通过持久化机制Redis 可以在保证高速访问的同时提高数据可靠性。1.1.6 集群能力单个 Redis 节点的存储能力受到机器内存限制当业务数据量不断增长时单节点可能无法满足存储需求。Redis 提供集群能力通过多个 Redis 节点共同存储数据实现水平扩展。例如Redis 集群 节点1 节点2 节点3 数据1 数据2 数据3通过数据分片方式可以将原本存储在一个 Redis 节点中的数据拆分到多个节点从而突破单机资源限制。1.1.7 高可用能力Redis 支持主从复制以及故障转移机制提高系统可用性。在主从模式中一个 Redis 节点作为主节点负责处理写操作多个从节点复制主节点数据。当主节点出现故障时可以通过故障转移机制切换新的主节点减少服务中断时间。因此Redis 不仅能够提供高速访问能力也能够满足分布式系统对于可靠性的要求。1.1.8 Redis 为什么快Redis 的高性能主要来自多个方面Redis 数据主要存储在内存中避免了大量磁盘 I/O 操作。Redis 内部采用高效的数据结构不同的数据结构针对不同业务场景进行了优化。Redis 使用单线程模型处理核心请求通过事件循环机制处理网络请求避免了多线程环境下锁竞争带来的额外开销。Redis 的单线程主要负责执行命令操作而网络通信等部分可以通过多线程辅助处理因此并不是所有工作都由单线程完成。Redis 采用事件驱动模型通过 I/O 多路复用机制同时处理多个客户端连接。例如多个客户端连接 | ↓ I/O 多路复用 | ↓ Redis 事件循环 | ↓ 执行命令这种模型避免了传统阻塞式网络编程中大量线程等待资源的问题使 Redis 能够在高并发环境下保持较高吞吐量。此外Redis 主要执行内存数据操作计算复杂度通常较低因此单线程模型也能够满足大量业务场景需求。1.2 Redis 使用场景Redis 的核心定位是高性能内存数据存储因此它通常用于需要快速访问数据的业务场景。1.2.1 缓存数据库缓存是 Redis 最常见的应用场景。在大型互联网系统中大量请求直接访问 MySQL 会造成数据库压力过大。为了降低数据库负载可以将访问频率较高的数据提前保存到 Redis 中。整体流程如下客户端请求 ↓ Redis 查询缓存 ↓ 存在 ↓ 直接返回数据 不存在 ↓ 查询 MySQL ↓ 写入 Redis ↓ 返回数据例如商品详情用户信息热门文章配置信息。这些数据通常读取频率远高于修改频率非常适合存储在 Redis 中。在实际系统中并不是所有数据都放入 Redis而是根据业务访问特点选择热点数据进行缓存。例如Redis保存热点数据 MySQL保存完整业务数据通过这种方式可以同时利用 Redis 的高速访问能力和 MySQL 的持久化能力。1.2.2 搜索结果缓存搜索系统通常需要处理大量查询请求。如果每一次搜索都直接访问数据库会产生大量重复查询压力。因此可以将热门搜索结果保存到 Redis 中用户搜索关键词 ↓ 查询 Redis 缓存 ↓ 存在 → 返回结果 不存在 → 查询数据库 → 保存 Redis例如热门商品搜索新闻搜索网站关键词查询。对于访问频率较高且变化不频繁的数据Redis 可以有效降低后端数据库压力。1.2.3 Session 会话存储在传统 Web 应用中用户登录后的 Session 信息通常保存在应用服务器本地。例如客户端 | ↓ 应用服务器1 | Session 数据但是在分布式系统中通常存在多个应用服务器并通过负载均衡分发请求。此时同一个用户的多次请求可能被分配到不同服务器负载均衡 / | \ 服务1 服务2 服务3如果 Session 保存在单台服务器本地那么用户再次访问其他服务器时可能无法找到自己的登录状态。解决方式是将 Session 集中存储到 Redis所有应用服务器共享 Redis 中的会话数据因此无论请求访问哪台服务器都可以获取用户登录状态。1.2.4 消息队列Redis 也可以用于实现简单的消息队列。此处咱们说到的消息队列不是Linux进程间通信的那个消息队列在分布式系统中服务之间经常需要异步通信例如生产者服务 ↓ 消息队列 ↓ 消费者服务通过消息队列可以降低系统耦合度并提高整体处理能力。Redis 提供 List、Stream 等数据结构可以实现消息发送和消费。相比专门的消息队列系统例如 RabbitMQ、Kafka、RocketMQ 等Redis 的消息队列能力更加轻量适用于一些简单消息场景。例如异步任务处理简单消息通知服务之间的数据传递。当业务需要复杂消息确认、消息堆积、大规模消费能力时通常会选择专业消息队列系统。1.2.5 Redis 不适合存储什么虽然 Redis 性能很高但并不是所有数据都适合存储在 Redis 中。Redis 基于内存保存数据而内存资源有限因此不适合存储大规模、低访问频率的数据。例如海量历史数据大文件数据长期归档数据。这类数据通常应该保存到数据库、对象存储或者文件系统中。Redis 更适合保存访问频繁、数据规模可控、对访问速度要求较高的数据。因此在实际架构设计中Redis 通常作为高速数据访问层存在而不是替代所有数据存储系统。通过合理结合 Redis、关系型数据库以及其他分布式组件可以构建同时具备高性能、高可靠性和良好扩展能力的现代互联网系统。第二章 Redis 安装与运行配置Redis 作为一个高性能内存数据库在实际使用之前需要完成安装、配置以及服务管理。Redis 在 Linux 环境中提供多种安装方式不同方式在版本控制、部署效率以及后续维护方面存在差异。对于学习 Redis 原理、源码分析以及模拟企业部署环境而言源码安装具有更强的可控性。通过源码编译可以明确指定 Redis 版本同时保留完整源码环境方便后续理解 Redis 内部实现。因此本章采用Redis 6.2.17 源码编译安装方式完成部署。2.1 Redis 安装方式选择Redis 常见安装方式主要包括包管理器安装、二进制安装以及源码编译安装。安装方式特点包管理器安装安装简单但版本受系统仓库限制二进制安装无需编译可以快速部署源码编译安装版本可控保留源码适合学习和生产环境包管理器安装通常是最简单的方式例如yuminstallredis执行该命令后系统会自动完成 Redis 安装。但是这种方式依赖系统软件仓库Redis 版本由仓库维护者决定无法保证一定满足业务需求。例如业务环境需要使用 Redis 6.x而当前系统仓库提供的是 Redis 5.x此时通过包管理器安装就无法满足版本要求。源码安装则可以直接选择指定版本Redis 6.2.17通过源码编译生成 Redis 可执行程序可以保证不同环境之间使用相同版本的 Redis因此更适合开发、测试以及生产环境部署。2.2 Redis 6.2.17 源码安装补充查看系统环境hostnamectl输出类似Operating System: CentOS Linux8Kernel: Linux4.18.0-348.el8.x86_64 Architecture: x86-64可以同时看到系统版本内核版本CPU 架构补充/usr/local/src目录作用cd /usr/local/src进入/usr/local/src目录把 Redis 源码下载并解压到这里。不是 Redis 必须要求的目录而是一种Linux 下源码安装软件时的常见目录规范。为什么选择/usr/local/srcLinux 文件系统有一些约定/ ├── bin # 系统基本命令存放普通用户和系统启动需要的可执行程序 │ ├── ls │ ├── cp │ └── mv │ ├── boot # 系统启动相关文件 │ ├── kernel # Linux 内核文件 │ └── grub # 引导程序配置 │ ├── dev # 设备文件目录将硬件设备抽象为文件 │ ├── sda # 磁盘设备 │ └── tty # 终端设备 │ ├── etc # 系统和软件配置文件 │ ├── passwd # 用户信息 │ ├── hosts # 主机解析配置 │ └── redis # Redis 配置目录 │ └── redis.conf │ ├── home # 普通用户家目录 │ └── username │ ├── lib # 系统核心共享库文件 │ └── *.so │ ├── lib64 # 64 位系统共享库文件 │ ├── media # 自动挂载的移动设备目录 │ └── cdrom │ ├── mnt # 临时挂载文件系统目录 │ ├── opt # 第三方软件安装目录 │ └── software │ └── redis │ ├── proc # 虚拟文件系统保存内核运行状态信息 │ └── cpuinfo │ ├── root # root 用户家目录 │ ├── run # 系统运行时产生的数据 │ ├── sbin # 系统管理员使用的命令 │ ├── shutdown │ └── reboot │ ├── srv # 服务程序运行产生的数据 │ ├── sys # 虚拟文件系统提供内核和硬件信息 │ ├── tmp # 临时文件目录系统可能自动清理 │ ├── usr # 用户程序和资源目录 │ ├── bin # 普通用户可执行程序 │ │ ├── java │ │ └── python │ │ │ ├── lib # 用户程序依赖的库文件 │ │ │ ├── local # 用户自行安装的软件 │ │ ├── bin # 软件可执行文件 │ │ │ ├── redis-server │ │ │ └── redis-cli │ │ │ │ │ ├── lib # 软件运行依赖库 │ │ │ │ │ └── src # 软件源码 │ │ └── redis-6.2.17 │ │ │ └── share # 共享文档、帮助文件 │ └── var # 经常变化的数据 ├── log # 系统和软件日志 │ └── redis │ └── redis-server.log │ ├── lib # 软件运行数据 │ └── redis │ └── dump.rdb │ ├── cache # 软件缓存 │ └── spool # 队列和任务数据其中/usr/local表示用户自己安装的软件不属于系统包管理器。例如通过源码安装Redis Nginx MySQL JDK Tomcat通常都会放这里。/usr/local/src表示保存软件源代码的位置。例如/usr/local/src │ ├── redis-6.2.17 │ ├── src │ ├── redis.conf │ ├── Makefile │ ├── nginx-1.26.0 │ └── mysql-8.0那能不能放其他地方当然可以。2.2.1 安装环境准备Redis 使用 C 语言开发源码安装需要先准备编译环境。安装 Redis 编译依赖dnfinstall-ygccmakewget其中gccC 语言编译器用于将 Redis 源代码编译成可执行程序make构建工具根据 Redis 提供的 Makefile 自动执行编译流程wget用于下载 Redis 源码压缩包。完成环境准备后系统已经具备 Redis 源码编译所需条件。2.2.2 Redis 源码下载与编译Linux 系统通常将源码文件存放在/usr/local/src目录。进入源码目录cd/usr/local/src下载 Redis 6.2.17wgethttps://download.redis.io/releases/redis-6.2.17.tar.gz下载完成后得到redis-6.2.17.tar.gz解压源码tar-zxvfredis-6.2.17.tar.gz进入 Redis 源码目录cdredis-6.2.17Redis 源码目录主要包含文件或目录作用srcRedis 核心源码redis.confRedis 默认配置文件MakefileRedis 编译规则其中src保存 Redis 服务端核心实现redis.conf保存 Redis 运行参数Makefile定义 Redis 编译过程。执行编译make编译过程中编译器会根据 Makefile 中定义的规则将 Redis 源代码转换成可执行程序。编译完成后会生成多个 Redis 工具程序作用redis-serverRedis 服务端程序redis-cliRedis 客户端程序redis-benchmarkRedis 性能测试工具redis-check-aofAOF 文件检测工具redis-check-rdbRDB 文件检测工具其中redis-server用于启动 Redis 服务redis-cli用于连接 Redis 并执行命令。Redis 提供maketest用于验证编译结果。如果执行过程中出现You need tcl 8.5 or newer in order to run the Redis test说明缺少 Tcl 测试环境。安装 Tcldnfinstall-ytcl重新执行maketest如果出现All tests passed without errors!说明 Redis 编译测试通过。需要注意make test主要用于验证编译结果并不是 Redis 启动运行的必要步骤。2.2.3 Redis 程序安装Redis 编译完成后需要执行makeinstall将 Redis 可执行程序安装到系统目录。默认安装位置/usr/local/bin查看 Redis 安装位置whichredis-server输出/usr/local/bin/redis-server安装完成后可以直接执行redis-server启动 Redis。相比包管理器安装源码安装能够直接控制 Redis 程序位置和版本不需要额外调整复杂目录结构。2.3 Redis 运行环境配置Redis 安装完成后还需要对运行环境进行配置包括配置文件、网络访问、后台运行以及数据和日志目录。2.3.1 Redis 配置文件管理Redis 源码目录中提供默认配置文件redis.conf为了方便管理需要将配置文件独立保存。创建配置目录mkdir-p/etc/redis复制默认配置cpredis.conf /etc/redis/redis.conf之后启动 Redis 时指定该配置文件redis-server /etc/redis/redis.conf通过独立配置文件管理 Redis 参数可以避免直接修改源码目录中的默认配置。2.3.2 Redis 网络访问配置Redis 默认监听bind 127.0.0.1表示 Redis 只允许本机访问。这种配置适合单机测试环境但是在实际开发环境中应用服务器可能和 Redis 部署在不同机器因此需要开放远程访问。修改bind 0.0.0.0表示 Redis 监听所有网络接口。同时关闭保护模式protected-mode noRedis 默认开启保护模式用于限制未经安全配置的远程访问。修改后客户端可以从其他机器连接 Redis。需要注意开放所有网络接口会增加 Redis 暴露风险因此生产环境通常需要结合防火墙、安全组以及密码认证限制访问。2.3.3 Redis 后台运行配置Redis 默认以前台方式启动daemonize no启动 Redis 后会占用当前终端。修改为daemonize yes开启后台运行模式。配置完成后redis-server /etc/redis/redis.confRedis 会作为后台进程运行。2.3.4 Redis 数据与日志配置Redis 数据主要保存在内存中同时支持持久化机制因此需要指定数据保存目录。创建数据目录mkdir-p/var/lib/redis修改配置dir /var/lib/redisRedis 持久化文件会保存到该目录。创建日志目录mkdir-p/var/log/redis/修改配置logfile /var/log/redis/redis-server.log最终 Redis 相关目录结构Redis │ ├── /usr/local/bin │ ├── redis-server # Redis服务端程序 │ └── redis-cli # Redis客户端程序 │ ├── /etc/redis │ └── redis.conf # Redis运行配置文件 │ ├── /var/lib/redis │ ├── dump.rdb # RDB持久化文件 │ └── appendonly.aof # AOF持久化文件 │ ├──/usr/lib/systemd/system │ └── redis.service # systemd服务管理文件 │ └── /var/log/redis └── redis-server.log # Redis运行日志通过将程序、配置、数据和日志分离可以提高后续维护效率。2.4 Redis 服务启动与管理2.4.1 Redis 启动与连接验证使用配置文件启动 Redisredis-server /etc/redis/redis.conf查看 Redis 运行状态ps-ef|grepredis如果出现redis-server *:6379说明 Redis 服务已经启动。使用 Redis 客户端连接redis-cli执行ping返回PONG表示 Redis 服务正常运行。2.4.2 Redis 服务停止查看 Redis 进程psaux|grepredis可以通过 PID 停止 RediskillPID但是直接终止进程不属于 Redis 推荐关闭方式。更推荐redis-clishutdown该方式会让 Redis 按正常流程关闭并释放相关资源。2.4.3 systemd 管理 Redis源码安装 Redis 后make install只会安装 Redis 可执行程序并不会自动创建 systemd 服务因此默认无法直接使用除非是通过系统软件包yum install redis通过安装的 Redis通常会自动创建 systemd 服务文件因此可以直接使用 systemctl 管理。systemctl start redis进行管理。如果需要使用 systemd 管理 Redis需要手动创建服务文件vim/usr/lib/systemd/system/redis.service配置[Unit] DescriptionRedis Server Afternetwork.target [Service] Typeforking ExecStart/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop/usr/local/bin/redis-cli shutdown Restartalways [Install] WantedBymulti-user.target重新加载 systemdsystemctl daemon-reload之后即可通过 systemd 管理 Redissystemctl start redis# 启动 Redissystemctl stop redis# 停止 Redissystemctl restart redis# 重启 Redissystemctlenableredis# 设置开机启动systemctl status redis# 查看运行状态查看 Redis 是否监听端口ss-nlpt|grep6379正常输出0.0.0.0:6379 LISTEN redis-server表示 Redis 已成功启动。通过 systemd 管理 Redis 的前提是已经创建对应的服务文件。yum 安装的 Redis 通常会自动创建该文件而源码安装需要手动配置。完成配置后Redis 的启动、停止和开机自启即可统一由 systemd 管理。第三章 Redis 基础运行模型与客户端访问Redis 安装完成并启动服务后需要进一步了解 Redis 的基本运行方式。Redis 并不是一个单独运行的命令工具而是由Redis 服务端Redis Server和Redis 客户端Redis Client两部分组成。Redis Server 负责数据存储、命令执行以及客户端连接管理是 Redis 的核心运行程序Redis Client 负责向 Redis Server 发送请求并接收服务端返回的数据。二者通过网络进行通信因此客户端和服务端既可以部署在同一台机器也可以部署在不同机器上。3.1 Redis 服务端管理3.1.1 Redis 服务启动Redis 服务端程序名称为redis-server如果需要指定配置文件启动 Redisredis-server /etc/redis/redis.conf启动 Redis 时服务端会读取配置文件中的相关参数例如监听地址、端口、数据目录以及日志配置等然后按照配置运行。Redis 默认监听端口为6379启动完成后可以通过查看进程确认 Redis 是否运行ps和netstat这两个命令查看的主要都是 Redis 服务端redis-server不是客户端redis-cli。ps-ef|grepredis也可以通过网络连接状态查看 Redis 是否监听端口netstat-nltp|grepredis例如tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 13928/redis-server其中6379表示 Redis 服务监听端口LISTEN表示当前端口正在等待客户端连接redis-server表示 Redis 服务进程。如果修改了 Redis 配置文件例如修改端口、持久化方式或者后台运行模式需要重新启动 Redis 服务后配置才会生效。3.1.2 Redis 服务停止停止 Redis 服务时可以先查看 Redis 服务进程netstat-nltp|grepredis或者ps-ef|grepredis获取 Redis 进程对应的 PID 后可以通过killPID结束 Redis 服务。例如kill13928但是直接通过kill关闭 Redis 属于强制结束进程并不是 Redis 推荐的关闭方式。Redis 提供了专门的关闭命令redis-clishutdown该命令会通知 Redis 服务端执行正常关闭流程使 Redis 完成关闭操作。3.2 Redis 客户端与服务端模型Redis 采用经典的客户端-服务器模型。其中Redis Server负责保存数据、执行 Redis 命令以及响应客户端请求Redis Client负责发送命令并接收 Redis 返回结果。客户端执行 Redis 命令时并不会直接操作 Redis 内部数据而是将请求发送给 Redis Server由服务端完成具体的数据处理。例如SET user:name Tom客户端发送该命令后Redis Server 会执行数据保存操作并返回执行结果。Redis Client 和 Redis Server 可以运行在同一台机器上Redis Client ---- Redis Server也可以部署在不同机器应用服务器 ---- Redis Server在实际生产环境中通常由应用程序作为 Redis 客户端通过网络访问独立部署的 Redis 服务。3.3 Redis 客户端类型Redis 客户端存在多种形式不同场景下可以选择不同客户端访问 Redis。3.3.1 命令行客户端 redis-cliRedis 官方提供了命令行客户端redis-cli这是最常用的 Redis 管理工具。启动后127.0.0.1:6379表示客户端已经连接到 Redis 服务。可以执行pingRedis 返回PONG表示客户端与 Redis Server 通信正常。如果 Redis 服务部署在其他机器可以指定服务器地址和端口redis-cli-h127.0.0.1-p6379其中-h表示指定 Redis 服务地址-p表示指定 Redis 服务端口。3.3.2 图形化客户端除了命令行客户端还存在图形化 Redis 客户端。图形化客户端通常通过可视化界面管理 Redis 数据例如查看 Key、Value执行 Redis 命令以及管理缓存数据。这类客户端操作更加直观适合开发和测试环境使用。但是图形化客户端本质上仍然属于 Redis Client需要连接 Redis Server。如果 Redis 未开放远程访问或者存在权限限制客户端可能无法连接 Redis。3.3.3 基于 Redis API 的客户端在实际开发中应用程序通常不会直接使用redis-cli操作 Redis而是通过编程语言提供的 Redis API 访问 Redis。例如Java 程序通过 Redis 客户端访问 RedisPython 程序通过 Redis 库操作 Redis其他语言通过对应 SDK 调用 Redis。这种方式类似于数据库提供的开发接口例如 MySQL 的 C API、JDBC 等。应用程序通过 API 封装 Redis 命令然后与 Redis Server 通信。因此在实际系统中Redis 通常作为独立的数据服务存在由不同应用通过客户端连接并使用。3.4 Redis 基本运行流程Redis 的运行过程可以概括为客户端发送请求Redis Server 接收请求并执行命令最后将结果返回客户端。例如客户端发送命令 ↓ Redis Server 执行操作 ↓ 返回执行结果客户端只负责请求和结果接收而数据处理逻辑全部由 Redis Server 完成。这种客户端与服务端分离的设计使 Redis 可以被多个客户端同时访问并作为独立的数据服务组件集成到不同业务系统中。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑