第九十四期 Ubuntu24.04 编译安装Redis8并启用SSL

发布于 2025-07-17  272 次阅读


一、下载tar包

1. 前往 https://download.redis.io/releases/,找到自己想要的版本,复制链接。
2. 我这里下载的是8.0.3,使用wget或curl或sftp等方式下载或上传到服务器。

二、准备依赖包

1. 你需要确保自己的系统有以下环境:

  • Python3
  • pip3
  • pkg-config
  • openssl
  • git
  • wget和curl
  • unzip
  • cmake
  • make
  • libssl-dev
  • cargo
  • gcc
  • g++

Python3 Ubuntu、openssl理应自带

但是pip3默认是没有的。

sudo apt-get install python3-pip -y

cmake、gcc、g++

sudo apt-get install build-essential -y

光有openssl却没有libssl-dev是不能满足要求的

sudo apt-get install libssl-dev -y

其他可能会用到的工具一并安装

sudo apt-get install pkg-config wget curl unzip -y

cargo属于rustc环境的一部分,如果缺失网络上说
可以通过apt包或者官方脚本下载,但apt包版本可能会滞后,我没有实践过,谨慎参考

sudo apt install rustc cargo
# 安装 rustup(Rust 工具链安装器)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 按提示选择默认选项(安装完成后会自动配置环境变量)
source ~/.cargo/env  # 立即生效(或重启终端)

# 验证安装
rustc --version  # 应输出版本号(如 1.70.0)
cargo --version  # 应输出版本号

三、编译安装

1. 解压文件

tar -zxvf ./redis-8.0.3.tar.gz
cd redis-8.0.3

2. 开始编译

export BUILD_TLS=yes
export BUILD_WITH_MODULES=yes
export INSTALL_RUST_TOOLCHAIN=yes
export DISABLE_WERRORS=yes
make -j "$(nproc)" all

编译完成后会显示

...
[100%] Building CXX object tests/cpptests/CMakeFiles/rstest.dir/test_cpp_utils.cpp.o
[100%] Building CXX object tests/cpptests/CMakeFiles/rstest.dir/test_cpp_value.cpp.o
[100%] Building CXX object tests/cpptests/CMakeFiles/rstest.dir/common.cpp.o
[100%] Building CXX object tests/cpptests/CMakeFiles/rstest.dir/index_utils.cpp.o
[100%] Linking CXX executable rstest
[100%] Built target rstest
Build completed.

3. 产物迁移
产物位于源码目录中的src目录下,这时候里面的redis-server和redis-cli可以直接用了,规范的操作是将src目录下的东西迁移到/usr/local/bin/redis下面,一般所有的编译的程序都在/usr/local/bin里头。

mkdir -p /usr/local/bin/redis/
mv src/* /usr/local/bin/redis/

4. 创建专属用户,并修改用户组和权限

sudo groupadd redis
sudo useradd redis -g redis
sudo chown -R redis:redis /usr/local/bin/redis/*
sudo chmod -R 755 /usr/local/bin/redis/*

四、生成服务端与客户端SSL证书

请参见第九十三期 MySQL8 启用强制SSL的 “一、SSL证书准备” 部分,最后的用户和权限配置 应该把用户组和用户从mysql修改为redis,错误的权限将导致密钥不可用,无法启动或登录redis。

五、配置

编译安装的redis不具备专门的配置文件目录,依照规范,应该创建一个/etc/redis,并写一个redis.conf
用于配置端口、开启SSL、证书位置、密码保护。

sudo mkdir -p /etc/redis
sudo touch /etc/redis/redis.conf
sudo chown -R redis:redis /etc/redis/*
sudo chmod -R 600 /etc/redis/*
vim /etc/redis/redis.conf

添加以下内容

# 监听端口
port 0
tls-port 6379

# TLS 证书相关路径
tls-cert-file /etc/redis/server.pem
tls-key-file /etc/redis/server.key
tls-ca-cert-file /etc/redis/ca.pem

# 可选,验证客户端证书
tls-auth-clients yes

# 绑定地址(监听所有网卡)
bind 0.0.0.0

# 密码认证
requirepass 123456

六、进程守护

1. 添加service文件

sudo vim /etc/systemd/system/redis.service

内容如下

[Unit]
Description=Redis 8.0.3 Server
After=network.target

[Service]
Type=simple
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-8.0.3/redis-server /etc/redis/redis.conf
Restart=always
RestartSec=5

# 限制文件描述符等系统资源
LimitNOFILE=10000

[Install]
WantedBy=multi-user.target

2. 重载配置文件

systemctl daemon-reload

3. 开机自启与启用

systemctl enable redis
systemctl start redis

Skyler & Harry 's Notes