一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 数据库这种方言式的交互方式导致学习成本高、迁移困难。后来SQLStructured 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通过唯一 Key 快速访问 Value结构简单、读写极快哈希表Hash Table结构支持过期、持久化等扩展 Redis Memcached Amazon DynamoDB缓存会话、计数器、排行榜、分布式锁列存储数据库Column-Family按列族组织数据适合海量数据分布式存储与聚合分析列式存储 压缩编码支持水平扩展与高吞吐写入 Apache HBase Cassandra ClickHouse日志分析、时序数据、大数据报表、IoT 数据采集文档数据库Document-Oriented以半结构化文档为单位存储Schema 灵活支持嵌套查询JSON / BSON 格式支持字段级索引与丰富查询语法 MongoDB Couchbase Firebase Firestore内容管理、用户画像、商品中心、移动端后端图数据库Graph专为关系网络设计高效处理多跳查询与路径分析节点Node 边Edge 属性Property的图模型 Neo4j JanusGraph Amazon Neptune社交关系、风控反欺诈、知识图谱、推荐系统对象数据库Object-Oriented直接存储编程语言中的对象避免 ORM 映射开销对象序列化存储支持继承、多态等 OOP 特性 db4o已停更 ObjectDB Versant嵌入式系统、CAD/CAE 软件、复杂领域模型小众场景XML 数据库XML-Native原生支持 XML 文档存储与 XPath/XQuery 查询树形结构解析保留标签层级与命名空间信息 BaseX eXist-db MarkLogic混合支持配置文件管理、政务/金融报文交换、遗留系统集成 补充说明✅ 选型建议速览⚠️ 注意事项对象数据库如 db4o目前生态较弱多数场景已被「关系型 ORM」或「文档数据库」替代新项目慎用XML 数据库适用于特定行业标准如金融 FIXML、政务 GML通用业务建议转为 JSON 文档数据库混合架构是常态现代系统常组合使用多种数据库如 MySQL Redis Elasticsearch发挥各自优势云原生趋势主流云厂商提供托管服务如 AWS ElastiCache、Azure Cosmos DB可降低运维成本。 扩展阅读推荐NoSQL 数据库选型指南 - Martin FowlerRedis 官方文档MongoDB University 免费课程Neo4j GraphAcademy 图数据库入门提示技术选型请以业务场景 数据特征 团队能力 运维成本为优先级避免盲目追新。三Linux8 安装 Redis小编服务器信息如下[roottoast-server redis]# uname Linux [roottoast-server redis]# uname -m x86_64 [roottoast-server redis]# uname -u uname: invalid option -- u Try uname --help for more information. [roottoast-server redis]# uname -r 5.10.134-19.3.al8.x86_64 [roottoast-server redis]# cat /etc/os-release NAMEAlibaba Cloud Linux VERSION3 (OpenAnolis Edition) IDalinux ID_LIKErhel fedora centos anolis VERSION_ID3 VARIANTOpenAnolis Edition VARIANT_IDopenanolis ALINUX_MINOR_ID2104 ALINUX_UPDATE_ID13 PLATFORM_IDplatform:al8 PRETTY_NAMEAlibaba Cloud Linux 3.2104 U13 (OpenAnolis Edition) ANSI_COLOR0;31 HOME_URLhttps://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系统上[roottoast-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/[roottoast-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] [roottoast-server ~]# ll -rw-r--r-- 1 root root 4480031 May 25 17:52 redis-8.8.0.tar.gz3.3 解压 Redis 源码包查看 源码部署包的下载位置[roottoast-server src]# pwd # 小编的源码部署包放在 /usr/local/src 目录下 /usr/local/src [roottoast-server src]# ls redis-8.8.0.tar.gz开始解压源码部署包并解压到指定的目录下[roottoast-server src]# tar xzvf /usr/local/src/redis-8.8.0.tar.gz -C /usr/local/src/ [roottoast-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包。过程是一样的。[roottoast-server src]# cd redis-8.8.0/src/ [roottoast-server src]# make # 内网可不考虑 TLS 的配置由于小编的服务器是出于公网环境所以需要开启 TLS 的配置。所以就不直接 make 而是追加一个配置如下命令[roottoast-server src]# dnf install -y openssl-devel # 确保系统拥有这个依赖库这个是提供TLS功能库 [roottoast-server src]# make BUILD_TLSyes之后make[1]: Leaving directory /usr/local/src/redis-8.8.0/tests/modules Hint: Its a good idea to run make test ;) # 看到这个表示编译成功 [roottoast-server src]#3.5 安装redis对编译后的 Redis 程序进行安装将其安装在 /usr/local/redis 目录之中[roottoast-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: Its a good idea to run make test ;) INSTALL redis-server INSTALL redis-benchmark INSTALL redis-cli查看安装的内容[roottoast-server src]# pwd /usr/local/src/redis-8.8.0/src [roottoast-server src]# ll /usr/local/redis total 4 drwxr-xr-x 2 root root 4096 May 28 10:54 bin3.6 配置Redis 的环境变量为了方便后续服务的使用将 Redis 命令目录配置到系统环境之中[roottoast-server redis]# vim /etc/profile在profile文件末尾追加如下两行# Redis Environment Variables export REDIS_HOME/usr/local/redis export PATH$PATH:$REDIS_HOME/bin最后刷新配置信息使其生效[roottoast-server redis]# source /etc/profile [roottoast-server redis]# redis-server --version Redis server v8.8.0 sha00000000:0 mallocjemalloc-5.3.0 bits64 build5db5ee081211f7be # v8.8.0 版本号 mallocjemalloc-5.3.0 内存分配版本 # bits64 64软件包 build5db5ee081211f7be 编译构建的唯一标识 ID这样整个流程的软件安装已完成