因需求更新redis版本记录
以下为操作步骤

redis下载地址:https://download.redis.io/releases/

1. 停止redis服务

1
2
3
4
5
6
7
8
# 若用 systemd
sudo systemctl stop redis || sudo systemctl stop redis-server || true

# 若是手工启动的,用 CLI 关机(按你的IP/端口/密码改)
/opt/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -u <user> -a <password> SHUTDOWN

# 备份当前 bin(以便快速回滚)
cp -a /opt/redis/bin /opt/redis/bin_7.4.1_bak_$(date +%F)

2. 安装新版本

通过ftp将下载的包上传至服务器或者直接wget下载

1
2
3
4
5
6
7
8
9
10
11
12
13
# 下载 7.4.5 源码包(可换成你常用的下载方式)
wget https://download.redis.io/releases/redis-7.4.5.tar.gz
tar xzf redis-7.4.5.tar.gz
cd redis-7.4.5
# 编译(根据CPU核数并行,含TLS支持可留可去)
make BUILD_TLS=yes -j"$(nproc)"
# 安装到独立目录,避免直接覆盖
make PREFIX=/opt/redis-7.4.5 install

# 覆盖 /opt/redis/bin(保留原 redis.conf 不动)
sudo rm -rf /opt/redis/bin
sudo mkdir -p /opt/redis/bin
sudo cp -a /opt/redis-7.4.5/bin/* /opt/redis/bin/

3. 启动并校验

1
2
3
4
5
6
7
# 启动(按你的服务名来)
sudo systemctl start redis || sudo systemctl start redis-server || \
/opt/redis/bin/redis-server /opt/redis/redis.conf

# 校验版本
/opt/redis/bin/redis-server -v
/opt/redis/bin/redis-cli INFO server | grep redis_version

回滚方案:

1
2
3
4
systemctl stop redis || true
rm -rf /opt/redis/bin
mv /opt/redis/bin_7.4.1_bak_*/ /opt/redis/bin
systemctl start redis || /opt/redis/bin/redis-server /opt/redis/redis.conf

4. 其他情况

如果执行 ./redis-server -v 版本还是旧版本的情况的话
先确认编译的版本是否为新版本

1
2
3
4
5
6
# 到你刚才的源码目录里(示例路径,按你的为准)
cd /usr/local/src/redis-build/redis-7.4.5

# 直接看编译产物版本
./src/redis-server -v
./src/redis-cli -v

如果这里是新版本那就没问题
可以试试清除缓存

1
2
3
4
5
6
7
# 清理 shell 的命令缓存再查一次
hash -r
type -a redis-server

# 直接看 /opt/redis 里的版本
/opt/redis/bin/redis-server -v || true
/opt/redis/bin/redis-cli -v || true

附上systemd管理 创建一个service文件
vim /etc/systemd/system/redis.service
写入

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Redis Server
After=network.target

[Service]
ExecStart=/opt/redis/bin/redis-server /opt/redis/redis.conf
ExecStop=/opt/redis/bin/redis-cli shutdown
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

重新加载并启动
systemctl daemon-reload
systemctl enable redis
systemctl start redis
查看状态
systemctl status redis

nohup启动

1
nohup /opt/redis/bin/redis-server /opt/redis/redis.conf > /opt/redis/redis.log 2>&1 &