一、下载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默认是没有的。
cmake、gcc、g++
光有openssl却没有libssl-dev是不能满足要求的
其他可能会用到的工具一并安装
cargo属于rustc环境的一部分,如果缺失网络上说
可以通过apt包或者官方脚本下载,但apt包版本可能会滞后,我没有实践过,谨慎参考
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 按提示选择默认选项(安装完成后会自动配置环境变量)
source ~/.cargo/env # 立即生效(或重启终端)
# 验证安装
rustc --version # 应输出版本号(如 1.70.0)
cargo --version # 应输出版本号
三、编译安装
1. 解压文件
cd redis-8.0.3
2. 开始编译
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里头。
mv src/* /usr/local/bin/redis/
4. 创建专属用户,并修改用户组和权限
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 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文件
内容如下
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. 重载配置文件
3. 开机自启与启用


叨叨几句... NOTHING