Redis 简介和安装
一,Redis 与 NoSQL 概念梳理
1.1 Redis 简介
Redis 是一款基于内存的键值型(Key-Value)数据库,具有以下核心特点:
- ✅高性能:数据存储在内存中,读写速度极快,适合高并发场景
- ✅数据结构丰富:支持 String、Hash、List、Set、ZSet 等多种数据类型
- ✅持久化支持:提供 RDB 和 AOF 两种持久化机制,兼顾性能与数据安全
- ✅开源 & 社区活跃:广泛应用于缓存、会话管理、消息队列等场景
- ✅属于 NoSQL 数据库:非关系型、灵活扩展、适合非结构化/半结构化数据
1.2 NoSQL 概念的演变
🔹 早期:「No SQL」= 坚决不用 SQL
在数据库发展的早期阶段,不同厂商的数据库产品(如 IBM DB2、Oracle、Informix 等)各自采用私有操作命令,缺乏统一标准:
✅ 学会 A 数据库 → ❌ 不一定能操作 B 数据库这种"方言式"的交互方式导致学习成本高、迁移困难。后来SQL(Structured Query Language)作为标准查询语言被提出,逐步成为关系型数据库的通用接口。
但当时部分开发者对"标准化"持保留态度,认为:
- SQL 限制了数据库的灵活性
- 关系模型无法高效处理某些场景(如海量日志、图关系、文档存储)
因此,早期的「No SQL」字面含义是:"反对 SQL,坚持使用自有命令"。
🔹 现代:「Not Only SQL」= 不止于 SQL
随着互联网业务发展,传统关系型数据库在以下场景面临挑战:
场景 | 关系型数据库的局限 | NoSQL 的优势 |
海量数据写入 | 垂直扩展成本高 | 水平扩展、分布式架构 |
非结构化数据 | 需预定义 Schema | 灵活字段、动态模型 |
高并发读/写 | 锁机制、事务开销 | 最终一致性、轻量协议 |
特定数据模型 | 通用但不够专精 | 键值/文档/列族/图等专用优化 |
于是,社区重新定义了NoSQL = Not Only SQL,其核心理念是:
"根据业务场景选择合适的存储方案,关系型与非关系型数据库可以协同工作"
1.3 总结:技术选型的核心逻辑
🔹 没有"最好"的数据库,只有"最合适"的数据库 🔹 SQL 与 NoSQL 不是对立关系,而是互补关系 🔹 Redis 等 NoSQL 数据库的出现,是为了填补关系型数据库在特定场景下的能力空白📌 典型混合架构示例:
用户信息(强一致) → MySQL / PostgreSQL 会话缓存(高性能) → Redis 商品详情(灵活结构) → MongoDB 社交关系(图查询) → Neo4j 日志分析(列式存储) → ClickHouse / HBase💡建议:在实际项目中,优先明确业务需求(一致性、扩展性、查询模式等),再结合技术特性进行选型,避免"为了用新技术而用新技术"。
二,主流数据库类型分类速查
📋 按数据模型分类
数据库类型 | 核心描述 | 存储结构/特点 | 代表产品 | 典型应用场景 |
键值数据库 | 通过唯一 Key 快速访问 Value,结构简单、读写极快 | 哈希表(Hash Table)结构,支持过期、持久化等扩展 | 🔹 Redis | 缓存会话、计数器、排行榜、分布式锁 |
列存储数据库 | 按列族组织数据,适合海量数据分布式存储与聚合分析 | 列式存储 + 压缩编码,支持水平扩展与高吞吐写入 | 🔹 Apache HBase | 日志分析、时序数据、大数据报表、IoT 数据采集 |
文档数据库 | 以半结构化文档为单位存储,Schema 灵活,支持嵌套查询 | JSON / BSON 格式,支持字段级索引与丰富查询语法 | 🔹 MongoDB | 内容管理、用户画像、商品中心、移动端后端 |
图数据库 | 专为关系网络设计,高效处理多跳查询与路径分析 | 节点(Node)+ 边(Edge)+ 属性(Property)的图模型 | 🔹 Neo4j | 社交关系、风控反欺诈、知识图谱、推荐系统 |
对象数据库 | 直接存储编程语言中的对象,避免 ORM 映射开销 | 对象序列化存储,支持继承、多态等 OOP 特性 | 🔹 db4o(已停更) | 嵌入式系统、CAD/CAE 软件、复杂领域模型(小众场景) |
XML 数据库 | 原生支持 XML 文档存储与 XPath/XQuery 查询 | 树形结构解析,保留标签层级与命名空间信息 | 🔹 BaseX | 配置文件管理、政务/金融报文交换、遗留系统集成 |
🔍 补充说明
✅ 选型建议速览
⚠️ 注意事项
- 对象数据库(如 db4o):目前生态较弱,多数场景已被「关系型 + ORM」或「文档数据库」替代,新项目慎用;
- XML 数据库:适用于特定行业标准(如金融 FIXML、政务 GML),通用业务建议转为 JSON + 文档数据库;
- 混合架构是常态:现代系统常组合使用多种数据库(如 MySQL + Redis + Elasticsearch),发挥各自优势;
- 云原生趋势:主流云厂商提供托管服务(如 AWS ElastiCache、Azure Cosmos DB),可降低运维成本。
📚 扩展阅读推荐
- NoSQL 数据库选型指南 - Martin Fowler
- Redis 官方文档
- MongoDB University 免费课程
- Neo4j GraphAcademy 图数据库入门
💡提示:技术选型请以业务场景 > 数据特征 > 团队能力 > 运维成本为优先级,避免盲目追新。
三,Linux8 安装 Redis
小编服务器信息如下
[root@toast-server redis]# uname Linux [root@toast-server redis]# uname -m x86_64 [root@toast-server redis]# uname -u uname: invalid option -- 'u' Try 'uname --help' for more information. [root@toast-server redis]# uname -r 5.10.134-19.3.al8.x86_64 [root@toast-server redis]# cat /etc/os-release NAME="Alibaba Cloud Linux" VERSION="3 (OpenAnolis Edition)" ID="alinux" ID_LIKE="rhel fedora centos anolis" VERSION_ID="3" VARIANT="OpenAnolis Edition" VARIANT_ID="openanolis" ALINUX_MINOR_ID="2104" ALINUX_UPDATE_ID="13" PLATFORM_ID="platform:al8" PRETTY_NAME="Alibaba Cloud Linux 3.2104 U13 (OpenAnolis Edition)" ANSI_COLOR="0;31" HOME_URL="https://www.aliyun.com/"兼容RHEL 8 / CentOS 8 的软件包(platform:al8标识
3.1 阅读 Redis 官网信息
首先进入 redis官网 ,点击 Does
点击 Does,如果Redis 官网更新了,没有 Does 选择项,直接使用 Redis 官网的搜索功能,也是可以的
点击 Redis Install
可以发现有很多种安装方式,小编这边选择 源码的方式进行安装,点击 Build and run Redis Open Source 选项。然后根据自己的Linux系统环境找到对应的源码安装包,小编这边是 Linux 8.10。
不清楚自己Linux系统的同学可以问 AI 用什么命令知道自己的Linux系统信息,适合安装下面哪款部署包。
选择进入之后
会看到是要我们进入redis 的github 仓库去下载,地址如下:
Redis github releases地址
还有一个地址redis 维护的版本地址:Index of /releases/
这两个地址都可以进行下载,小编这边就从github 那边下载
3.2 开始下载
- 通过 wget 将源码包下载到Linux系统上
[root@toast-server ~]# wget https://github.com/redis/redis/archive/refs/tags/8.8.0.tar.gz --2026-05-28 10:12:44-- https://github.com/redis/redis/archive/refs/tags/8.8.0.tar.gz Resolving github.com (github.com)... 20.205.243.166 Connecting to github.com (github.com)|20.205.243.166|:443... connected. HTTP request sent, awaiting response...由于小编这边并没有使用魔法,所以连接 github 会比较慢,一般都是超时下载失败,所以小编就直接使用另外一个下载地址:Index of /releases/
[root@toast-server ~]# wget https://download.redis.io/releases/redis-8.8.0.tar.gz --2026-05-28 10:15:09-- https://download.redis.io/releases/redis-8.8.0.tar.gz Resolving download.redis.io (download.redis.io)... 104.18.27.34, 104.18.26.34, 2606:4700::6812:1b22, ... Connecting to download.redis.io (download.redis.io)|104.18.27.34|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4480031 (4.3M) [application/octet-stream] Saving to: ‘redis-8.8.0.tar.gz’ redis-8.8.0.tar.gz 100%[=====================================================================================================>] 4.27M 444KB/s in 13s 2026-05-28 10:15:23 (343 KB/s) - ‘redis-8.8.0.tar.gz’ saved [4480031/4480031] [root@toast-server ~]# ll -rw-r--r-- 1 root root 4480031 May 25 17:52 redis-8.8.0.tar.gz3.3 解压 Redis 源码包
查看 源码部署包的下载位置
[root@toast-server src]# pwd # 小编的源码部署包放在 /usr/local/src 目录下 /usr/local/src [root@toast-server src]# ls redis-8.8.0.tar.gz开始解压源码部署包,并解压到指定的目录下
[root@toast-server src]# tar xzvf /usr/local/src/redis-8.8.0.tar.gz -C /usr/local/src/ [root@toast-server src]# ll total 4380 drwxrwxr-x 10 root root 4096 May 25 17:26 redis-8.8.0 -rw-r--r-- 1 root root 4480031 May 25 17:52 redis-8.8.0.tar.gz3.4 编译redis
拿到源码之后,进入 redis-8.8.0/src 源码目录之后,对源码进行编译成为 二进制文件,毕竟操作系统只认二进制文件,就像 java 应用要使用maven, gradle 进行打包成一个可执行jar包。过程是一样的。
[root@toast-server src]# cd redis-8.8.0/src/ [root@toast-server src]# make # 内网可不考虑 TLS 的配置由于小编的服务器是出于公网环境所以需要开启 TLS 的配置。所以就不直接 make 而是追加一个配置如下命令
[root@toast-server src]# dnf install -y openssl-devel # 确保系统拥有这个依赖库,这个是提供TLS功能库 [root@toast-server src]# make BUILD_TLS=yes之后
make[1]: Leaving directory '/usr/local/src/redis-8.8.0/tests/modules' Hint: It's a good idea to run 'make test' ;) # 看到这个表示编译成功 [root@toast-server src]#3.5 安装redis
对编译后的 Redis 程序进行安装,将其安装在 "/usr/local/redis" 目录之中
[root@toast-server src]# make PREFIX=/usr/local/redis install make -C ../tests/modules make[1]: Entering directory '/usr/local/src/redis-8.8.0/tests/modules' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/usr/local/src/redis-8.8.0/tests/modules' Hint: It's a good idea to run 'make test' ;) INSTALL redis-server INSTALL redis-benchmark INSTALL redis-cli查看安装的内容
[root@toast-server src]# pwd /usr/local/src/redis-8.8.0/src [root@toast-server src]# ll /usr/local/redis total 4 drwxr-xr-x 2 root root 4096 May 28 10:54 bin3.6 配置Redis 的环境变量
为了方便后续服务的使用,将 Redis 命令目录配置到系统环境之中
[root@toast-server redis]# vim /etc/profile在profile文件末尾追加如下两行
# Redis Environment Variables export REDIS_HOME=/usr/local/redis export PATH=$PATH:$REDIS_HOME/bin最后刷新配置信息使其生效
[root@toast-server redis]# source /etc/profile [root@toast-server redis]# redis-server --version Redis server v=8.8.0 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=5db5ee081211f7be # v=8.8.0 版本号 malloc=jemalloc-5.3.0 内存分配版本, # bits=64 64软件包 build=5db5ee081211f7be 编译构建的唯一标识 ID这样整个流程的软件安装已完成
