如何编译安装redis
文章目录

为什么要安装redis
在做后端开发的时候一定会知道一个概念就是缓存,在实际开发中,很多数据是不需要储存在数据库里面,比如验证码的key,手机登录的key,这些需要短时间储存的数据都不适合储存在数据库里面,频繁访问数据库会带来性能问题,尤其是在高并发场景下,数据库的读写压力会非常大。为了提高系统性能、减轻数据库负载,我们通常会将一些访问频率高但变动不频繁的数据存储在缓存中,以加快响应速度。
这时候就需要一个高效、稳定的缓存中间件,而 Redis 就是目前最主流的选择之一,原因包括:
- 性能极高:Redis是基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以
key-value的形式。非常适合储存这种键值对的数据。 - 支持分布式和高可用:Redis 支持主从复制、哨兵机制(Sentinel)和集群部署,适合构建大规模、高可用系统。
- 多种数据结构:Redis支持多种数据类型并提供了相应的操作方法,可以满足不同场景下的需求。
- 持久化:虽然 Redis 是内存数据库,但它支持将数据持久化到磁盘,防止数据意外丢失。
因此,在后端开发中,如果你希望提升数据访问效率、优化系统性能、构建高并发场景下的稳定应用,安装并使用 Redis 几乎是标配。
如何选择redis的版本
当我们打开redis的官网,我们会发现redis是收费的,没错redis有着多个版本,其中包括开源免费的版本,也有收费的企业级版本。具体有什么区别呢?免费的是本地部署的没有官方的一些服务支持,付费的是使用redis已经部署好的服务,并且有什么问题redis可以提供一些服务支持,就相当于是买已经部署好的服务,并且有售后支持。对于开发者来说,无论是开发个人程序还是公司程序,在个人电脑上安装免费的即可,所以我们选择免费的社区版即可。
我们打开redis官网的文档来看一下怎么安装,我们点击Install Redis,就可以看见对应重装系统的安装方法了。

我们选择对应的系统,例如Windows,点进去会发现redis官方并不支持Windows系统。官网有着这么一句话
Redis is not officially supported on Windows. However, you can install Redis on Windows for development by following the instructions below.

但是我们可以使用wsl来安装reids,也就是使用Linux安装,继续点开Linux的安装方法,里面有很多Linux分支的安装教程,不过大多数是通过包管理工具来安装的,这样很方便也很简单

那么,官网已经有了通过包管理工具的快捷方法,为什么还要写一篇这样的文章呢?
首先,Redis 官方不支持 Windows,是因为 Redis 使用的是大量基于 Linux 的底层系统调用(如 epoll、fork、虚拟内存映射等),这些在 Windows 上并不原生支持,所以 Redis 官方从 4.0 版本开始就不再维护 Windows 的官方编译版本。这意味着即使你能在 Windows 上“装上 Redis”,也不一定稳定或性能达标,因此官方明确指出:Windows 上仅建议用于开发或学习用途,不适合部署到生产环境。
其次,虽然包管理工具安装非常方便,但很多新手可能:
- 不知道如何使用包管理工具(如 apt、brew、yum 等)
- 不清楚如何确认 Redis 是否安装成功
- 不知道 Redis 默认配置文件在哪、默认端口是多少
- 不清楚如何启动、停止、查看状态,甚至设置开机自启
而这些问题,恰恰是新手在“安装完成后”的第一道门槛。因此本文目的不仅是“装上 Redis”,而是:
- 告诉你为什么这么装
- 教你如何验证是否装对
- 解释安装过程中的关键步骤和原理
- 为后续使用 Redis 打下基础
所以说,这篇文章的意义是为了帮助你理解Redis 安装的过程与原理,而不是机械地复制命令行。
怎么不使用包管理工具安装
使用包管理工具的好处就是它会帮我们搞定一切,包括redis需要的一些环境安装之类的,如果我们手动安装,我们需要做一些安装前的准备。
安装前的准备
安装常用依赖工具(以 CentOS 为例)
手动编译 Redis 源码,需要安装编译工具,如 gcc、make和wget等工具
sudo yum groupinstall "Development Tools" -y sudo yum install gcc tcl wget -y
image-20250509113004480 下载 Redis 源码
前往 Redis 官网获取最新版本下载地址,或使用如下命令(以 7.2.4 为例)
cd /usr/local/src sudo wget http://download.redis.io/releases/redis-7.2.4.tar.gz
image-20250509113248353 解压并进入源码目录
sudo tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4
编译安装redis
编译 Redis
先编译redis,在redis目录使用下面的命令来编译,请确保安装了编译工具gcc make等
sudo make
image-20250509114134234 等它跑完码就是编译完成了,这个时间视机器性能为准,没有固定的时间,耐心等待一下,编译完成以后,我们测试一下编译的结果是否正确,这个测试比较耗时间,如果是开发使用可以不去测试
sudo make test
image-20250509114914177 还是能检测出来一些问题的,我们来分析一下这些问题
- Process title set as expected:测试进程标题设置失败,不影响使用
- Crash report generated on SIGABRT:Redis 崩溃日志没有生成或格式不匹配(测试环境触发 SIGABRT),不影响使用
- Active defrag - AOF loading:主动内存整理测试中延迟超过预期,不影响使用
这些都是一些无关紧要的问题,虽然无关紧要,但是我觉得测试还很有必要的
安装redis服务
sudo make install
image-20250509115319775 它会把一些redis的服务安装到系统中,比如 redis-server 和 redis-cli 会被安装到 /usr/local/bin/ 目录。
测试运行Redis
Redis 编译完成后,我们就可以直接运行 Redis 服务器
redis-server
image-20250509215726991 也可以打开另一个终端窗口,用客户端连接
redis-cli
image-20250509215821619 此时 Redis 是以默认配置文件(内置默认配置)启动,并且是前台运行的。这种方式适合临时测试或开发调试,但是在实际部署中不推荐使用,原因有以下几点
- 关闭终端会导致 Redis 服务停止
- 没有日志文件、后台守护、内存限制等管理机制
- 无法通过配置文件定制绑定 IP、安全选项、持久化策略等
所以我们需要修改 Redis 配置文件并且配置 Systemd 服务
修改 Redis 配置文件
拷贝配置文件到 /etc/redis/
sudo mkdir /etc/redis sudo cp redis.conf /etc/redis/修改配置文件
配置文件自己按需修改,这里列几个比较常用的修改项
配置项 默认值 建议修改值 说明 daemonize no yes(systemd服务不需要改) 是否以后台守护进程运行(生产环境建议设为 yes) bind 127.0.0.1 0.0.0.0(按需开放) 绑定的 IP 地址,0.0.0.0 表示所有地址(需配合密码认证加强安全) requirepass 注释掉 your_password 设置访问密码(强烈建议开启以增强安全) appendonly no yes 是否开启 AOF 持久化(防止数据丢失) logfile ""(输出到 stdout) /var/log/redis/redis.log 日志文件路径 save 多条默认触发规则 可保留默认或自定义 RDB 快照持久化触发条件,单位:秒 & 次数 maxmemory 未设置(使用所有内存) 512mb(或根据机器设置) Redis 可用最大内存限制,超出将触发淘汰策略 maxmemory-policy noeviction allkeys-lru 内存不足时的数据淘汰策略(如 LRU、LFU 等) protected-mode yes no(配合 bind 和密码) 保护模式,限制外部连接(关闭需小心) 配置完成可以测试一下
redis-server /etc/redis/redis.conf
配置 Systemd 服务
每次都手动启动并且还得带配置文件的路径还是太麻烦了,直接使用ststemctl命令启动或者开机自启就方便很多
创建 systemd 服务文件
sudo vim /etc/systemd/system/redis.service填入以下内容(注意路径是否与你实际一致)
[Unit]Description=Redis In-Memory Data StoreAfter=network.target [Service]ExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli shutdownRestart=alwaysUser=root [Install]WantedBy=multi-user.target重新加载 systemd 并启用 Redis 服务
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable redis sudo systemctl start redis查看状态
sudo systemctl status redis
image-20250509224633016 看见绿色的active (running)就是正常运行了,我们再使用redis-cli来测试一下

image-20250509224733334 这样就没有问题了
总结一下我们干了什么
从最开始的为什么要安装 Redis,我们明确了缓存在后端开发中的重要性,以及 Redis 在性能、功能、稳定性等方面的优势。
之后我们一步步完成了
- 安装系统所需的编译依赖工具(如 gcc、make、wget 等)
- 下载 Redis 源码,解压并编译安装
- 使用 make test 测试编译是否成功(即使有些警告也知道了如何判断是否可以忽略)
- 安装 Redis 到系统目录,并通过 redis-server 和 redis-cli 测试基本运行是否正常
- 将 Redis 配置文件复制到标准目录 /etc/redis/,并进行了常见的配置项修改(如绑定地址、密码认证、持久化、内存限制等)
- 配置了 Redis 的 systemd 启动服务文件,实现了 systemctl 启动、停止、查看状态、设置开机自启等功能
- 最终我们使用 systemd 启动 Redis 并通过 redis-cli 测试连接,验证服务是否正常运行
整个过程中,我们不仅仅是“装上了 Redis”,更重要的是掌握了它的工作原理、配置方法和部署技巧,为之后开发中使用 Redis 打下了坚实基础。
如果完整的看到来这里,那你就不再是一个仅靠复制粘贴命令的人了,而是真正学会了 Redis 安装的全流程。最后,附上一个一键安装的sh脚本。
将下面的代码修改后,保存为 install_redis.sh, 后执行:sudo sh install_redis.sh
#!/bin/bash
# Redis 版本
REDIS_VERSION=7.2.4
REDIS_PORT=6379
REDIS_PASSWORD="your_password" # 修改为你自己的密码
echo "➡️ 开始安装 Redis ${REDIS_VERSION}..."
# 1. 安装依赖
echo "📦 安装编译工具和依赖..."
yum groupinstall -y "Development Tools"
yum install -y gcc tcl wget make
# 2. 下载 Redis
echo "🌐 下载 Redis 源码..."
cd /usr/local/src
wget http://download.redis.io/releases/redis-${REDIS_VERSION}.tar.gz
tar xzf redis-${REDIS_VERSION}.tar.gz
cd redis-${REDIS_VERSION}
# 3. 编译 Redis
echo "🛠️ 编译 Redis..."
make
make install
# 4. 创建配置目录和日志目录
mkdir -p /etc/redis
mkdir -p /var/log/redis
# 5. 拷贝配置文件
cp redis.conf /etc/redis/
# 6. 修改配置文件(使用 sed 自动替换)
echo "📝 配置 Redis..."
sed -i "s/^bind .*/bind 0.0.0.0/" /etc/redis/redis.conf
sed -i "s/^# requirepass.*/requirepass ${REDIS_PASSWORD}/" /etc/redis/redis.conf
sed -i "s/^appendonly no/appendonly yes/" /etc/redis/redis.conf
sed -i "s|^logfile .*|logfile /var/log/redis/redis.log|" /etc/redis/redis.conf
sed -i "s/^# maxmemory <bytes>/maxmemory 256mb/" /etc/redis/redis.conf
sed -i "s/^# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/" /etc/redis/redis.conf
sed -i "s/^protected-mode yes/protected-mode no/" /etc/redis/redis.conf
# 7. 创建 Redis systemd 服务文件
echo "🧾 设置 Redis Systemd 服务..."
cat <<EOF > /etc/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli -a ${REDIS_PASSWORD} shutdown
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
# 8. 启用并启动 Redis 服务
echo "🚀 启动 Redis..."
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable redis
systemctl start redis
# 9. 测试 Redis 是否启动成功
systemctl status redis --no-pager
echo
echo "✅ Redis ${REDIS_VERSION} 安装完成!"
echo "📌 默认端口:${REDIS_PORT}"
echo "🔐 访问密码:${REDIS_PASSWORD}"
echo "📂 配置文件:/etc/redis/redis.conf"
echo "🧾 日志文件:/var/log/redis/redis.log"
本文标题:如何编译安装redis
本文链接:https://blog.luola.me/128.html
除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议。
声明:转载请注明文章来源。