当前位置: 首页 > news >正文

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)

通过唯一 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(混合支持)

配置文件管理、政务/金融报文交换、遗留系统集成


🔍 补充说明

✅ 选型建议速览

⚠️ 注意事项

  1. 对象数据库(如 db4o):目前生态较弱,多数场景已被「关系型 + ORM」或「文档数据库」替代,新项目慎用;
  2. XML 数据库:适用于特定行业标准(如金融 FIXML、政务 GML),通用业务建议转为 JSON + 文档数据库;
  3. 混合架构是常态:现代系统常组合使用多种数据库(如 MySQL + Redis + Elasticsearch),发挥各自优势;
  4. 云原生趋势:主流云厂商提供托管服务(如 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 开始下载

  1. 通过 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.gz

3.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.gz

3.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 bin

3.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

这样整个流程的软件安装已完成

http://www.jsqmd.com/news/931077/

相关文章:

  • Sora 2视频放大效果翻车率高达63%?资深CV架构师紧急发布「增强可信度评估协议v1.2」
  • 模型推理为什么一上 Flash Decoding 就开始长上下文更快却短请求收益有限:从 Split-K 到 Reduction Window 的工程实战
  • 【Sora 2时尚设计视频实战指南】:零基础7天生成高商业价值AI时装秀视频
  • Arduino姿态音乐盒:用MPU6050传感器与蜂鸣器实现动作交互音乐
  • python学习第十二天(自用)
  • 基于ESP32与MAX30102的智能血氧心率监测仪DIY全攻略
  • ZLToolKit 源码分析(二):线程同步原语 semaphore 与 onceToken
  • 微博视频去水印方法全场景实操指南含在线工具使用技巧
  • 郑州市 高新区 厨卫改造翻新上门施工|维小达厨房改造、卫生间翻新、厨卫防水重做、下水管道改造一站式施工服务 - 维小达科技
  • 深度解析RevokeMsgPatcher:企业级消息保留技术完全手册
  • 【Agent智能体15 | 工具使用-现代的LLM请求调用工具的语法】
  • 手写一款高兼容、零BUG图片预览组件|前端
  • 多因子检测试剂盒(Multiplex Assay Kit)磁珠读数异常原因及解决方案
  • 基于WIO Terminal的智能交通灯模拟系统:从传感器到状态机的嵌入式实践
  • 2026 广州黄金回收避坑,五家口碑好店,收的顶专业合规排名第一 - 奢侈品回收测评
  • 7-Zip-zstd深度实战:六大现代压缩算法如何革新你的文件管理体验
  • 如何掌控你的惠普OMEN游戏本:OmenSuperHub完全使用指南
  • 2026年薪酬设计:这3个公平性原则让团队心服口服
  • 2026最新济南短视频运营平台排行:5家机构实力实测对比 - 奔跑123
  • 083、医学影像 CT/MRI 窗宽窗位应用不当?DICOM 解析、HU 值映射与多窗显示方案
  • 一文说清仓库管理三管三理:仓库管理到底管什么?理什么?
  • [开源] 住院床位实时智能调度系统:面向护士长的多目标优化分配工具,支持 CLI 快速决策、Web 可视化监控与 API 集成调用
  • 用Python和Tensorly复现经典PARAFAC论文:从荧光光谱数据到三维张量分解实战
  • 山东采暖炉品牌排行:实测性能与服务维度客观对比 - 奔跑123
  • 2026 年论文降 AI 工具硬核横评:16 款实测谁在保命谁在毁稿
  • Sora 2新闻视频制作终极清单:23项元数据埋点要求、8类信源溯源字段、7种政要形象生成禁令(内部培训绝密版)
  • Kali 实战教程:手把手教学断网攻击实操
  • 第4章:MCU最小系统设计——从一颗光杆芯片到它能跑起来
  • Sora 2到底值不值得现在上手?一线影视/广告/教育团队的30天实测结论与迁移成本预警(含ROI测算表)
  • [开源] 科室二次分配公平感模拟器:用博弈论算出护士长敢拍板的奖金方案,让夜班、年资、技术难度全进模型