Redis 概述
Redis 是基于内存的一块存储数据的小型缓存,也可以理解成小型数据库。很多人会有疑问,在内存中存储数据为什么不直接使用变量呢?
如果是单机程序,直接选择变量存储确实更优势。但在分布式系统中,Redis 则略胜一筹。它与 MySQL 这类大型数据库的区别在于:MySQL 擅长慢速、大容量存储,而 Redis 主打快速、小容量读写。实际开发中常结合使用,比如将 20% 的热点数据存储于 Redis,80% 不常访问的数据存入 MySQL。
Redis 最初的设计初衷是作为消息中间件(消息队列),用于分布式系统下的生产者消费者模型。虽然当前业界有更多专业的消息中间件,但 Redis 依然凭借其高性能被广泛使用。简单来说,Redis 就是基于网络,可以将自己内存中的变量分享给其他进程,甚至其他主机的进程。

核心概念

- 模块 (Module)/组件 (Component):一个应用里有很多功能,每个独立的功能可称为一个模块或组件。
- 分布式 (Distributed):引入多个主机或服务器,协同配合完成一系列工作(物理上的多个主机)。
- 集群 (Cluster):引入多个主机或服务器,协同配合完成一系列工作(逻辑上的多个主机)。
- 主 (Master)/从 (Slave):分布式系统中典型的结构,多个节点中一个是主,其余是从。从节点数据需从主节点同步。
- 中间件 (Middleware):与业务无关的服务,如数据库、缓存、消息队列等。
- 可用性 (Availability):系统整体可用时间与总时间的比值。
- 响应时长 (Response Time RT):衡量服务器性能,与具体业务密切相关。
通俗来说,Redis 就像是一个超级快的内存小仓库,可以当作临时的小本本,快速记东西、找东西、改东西,特别适合做缓存、计数器、消息队列等需要高速读写的场景。
分布式架构演进
每台主机都有硬件上限(CPU、内存、硬盘、网络)。当请求过多导致资源不足时,服务器可能崩溃。解决思路通常是开源(增加硬件)或节流(性能整改),但硬件拓展有限,最终往往需要多台主机协作,即构建分布式系统。
单机架构
用户通过域名解析 IP,请求到达应用服务器,再向数据库服务器获取数据。

常见的服务器软件包括 Web 服务器(Tomcat、Netty、Nginx、Apache)和数据库软件(MySQL、Oracle、PostgreSQL、SQL Server)。如果用户访问量很少,对性能安全要求不高,且无需专业运维团队,单机架构是合适的。
数据库分离与负载均衡
为了缓解压力,最小代价提升承载能力,通常将应用和数据分离部署。







