Linux离线安装Redis全过程

在没有互联网连接的Linux服务器上安装Redis需要提前准备相关软件包和依赖,通过离线方式完成安装和配置。以下是详细的离线安装Redis全过程。

图片[1]_Linux离线安装Redis全过程_知途无界

一、准备工作

1. 确定系统环境

首先需要确认目标Linux服务器的操作系统版本和架构,因为这将决定下载哪些对应的安装包。

在目标服务器上执行以下命令查看系统信息:

# 查看系统版本
cat /etc/os-release

# 查看系统架构
uname -m

常见情况:

  • Ubuntu/Debian​:通常为amd64(64位)或arm64架构
  • CentOS/RHEL​:通常为x86_64(等同于amd64,64位)或aarch64(ARM架构)

2. 准备一台可联网的相同系统环境的机器

由于目标服务器无法联网,我们需要在一台与目标服务器系统版本和架构相同的可联网机器上下载所需的安装包和依赖。

二、下载Redis及相关依赖(在可联网机器上操作)

1. 下载Redis安装包

访问Redis官方网站下载页面获取稳定版本的Redis:
https://redis.io/download

或者直接使用wget命令下载(以Redis 7.2.4为例,这是撰写时的稳定版本,请根据实际情况调整):

# 创建下载目录
mkdir -p ~/redis-offline-install
cd ~/redis-offline-install

# 下载Redis(请替换为最新稳定版本)
wget https://download.redis.io/releases/redis-7.2.4.tar.gz

注意​:请访问Redis下载页面查看最新稳定版本号,并相应调整下载链接。

2. 下载编译依赖(针对CentOS/RHEL)

Redis是基于C语言编写的,需要使用gcc编译器进行编译安装。在CentOS/RHEL系统上,需要下载gcc和相关开发工具包。

由于无法直接下载依赖包,我们需要使用yum的下载功能,但不进行安装,仅下载rpm包。

在可联网的CentOS/RHEL机器上执行以下操作​:

# 创建依赖包下载目录
mkdir -p ~/redis-offline-install/dependencies-centos
cd ~/redis-offline-install/dependencies-centos

# 使用yum下载redis编译所需的依赖包(不安装)
# 请确保已安装yum-utils
sudo yum install -y yum-utils

# 下载编译Redis所需的依赖
sudo yumdownloader --resolve --destdir=./ gcc make tcl

说明​:

  • gcc:GNU编译器集合,用于编译Redis源码
  • make:构建工具,Redis使用Makefile进行编译
  • tcl:Redis测试套件需要tcl

如果系统是CentOS 8或RHEL 8及以上,可能需要使用dnf​:

sudo dnf install -y dnf-plugins-core
sudo dnf download --resolve --destdir=./ gcc make tcl

3. 下载依赖包(针对Ubuntu/Debian)

对于Ubuntu/Debian系统,需要下载gcc和相关开发工具包的deb包。

在可联网的Ubuntu/Debian机器上执行以下操作​:

# 创建依赖包下载目录
mkdir -p ~/redis-offline-install/dependencies-ubuntu
cd ~/redis-offline-install/dependencies-ubuntu

# 使用apt-get下载编译Redis所需的依赖包(不安装)
sudo apt-get update

# 安装apt-rdepends和dpkg-dev(如果尚未安装)
sudo apt-get install -y apt-rdepends dpkg-dev

# 创建下载目录
mkdir -p ./downloads

# 下载编译Redis所需的依赖
sudo apt-get download $(apt-rdepends gcc make tcl | grep -v "^ ")

或者更简单的方式(适用于大多数情况)​​:

# 创建依赖包下载目录
mkdir -p ~/redis-offline-install/dependencies-ubuntu
cd ~/redis-offline-install/dependencies-ubuntu

# 下载gcc, make, tcl的deb包
apt download gcc make tcl

注意​:可能需要根据具体Ubuntu/Debian版本调整命令,确保下载的包与系统版本兼容。

三、将安装包传输到目标服务器

将下载好的Redis安装包和依赖包传输到目标服务器上。可以使用U盘、内网共享、scp(如果部分网络可用)或其他可用的传输方式。

假设使用U盘或内网传输,将以下目录/文件传输到目标服务器的某个目录,例如/home/youruser/redis-install/​​:

  • redis-7.2.4.tar.gz(Redis源码包)
  • 依赖包(目录中的所有rpm或deb包)

使用scp命令示例(如果部分网络可用)​​:

# 从可联网机器传输到目标服务器
scp ~/redis-offline-install/redis-7.2.4.tar.gz youruser@target_server_ip:/home/youruser/redis-install/
scp -r ~/redis-offline-install/dependencies-centos/ youruser@target_server_ip:/home/youruser/redis-install/
# 或者对于Ubuntu/Debian
scp -r ~/redis-offline-install/dependencies-ubuntu/ youruser@target_server_ip:/home/youruser/redis-install/

请根据实际情况调整路径和IP地址

四、在目标服务器上安装依赖(离线)

1. 安装依赖包(CentOS/RHEL)

步骤​:

  1. 将依赖的rpm包传输到目标服务器后,使用rpm命令进行安装。

操作​:

# 进入存放依赖包的目录
cd /home/youruser/redis-install/dependencies-centos

# 查看下载的rpm包
ls

# 使用rpm命令安装所有依赖包
sudo rpm -ivh *.rpm

如果遇到依赖问题,可能需要按照正确的顺序安装,或者使用--nodeps参数(不推荐,除非确定依赖已满足)。

更推荐使用yum本地安装​(如果可能):

# 使用yum本地安装(会自动处理依赖)
sudo yum localinstall *.rpm

注意​:如果目标服务器完全离线,yum可能无法正常工作,此时需要使用rpm手动安装。

2. 安装依赖包(Ubuntu/Debian)

步骤​:

  1. 将依赖的deb包传输到目标服务器后,使用dpkg命令进行安装。

操作​:

# 进入存放依赖包的目录
cd /home/youruser/redis-install/dependencies-ubuntu

# 查看下载的deb包
ls

# 使用dpkg命令安装所有依赖包
sudo dpkg -i *.deb

如果遇到依赖问题,可以尝试以下命令修复:

sudo apt-get install -f

但请注意apt-get install -f需要网络连接来下载缺失的依赖。在完全离线的环境下,如果dpkg安装失败,可能需要手动解决依赖关系,或确保所有依赖包都已下载并一起安装。

更简单的方式​(如果依赖较少):

# 逐一安装依赖包(根据实际下载的包名调整)
sudo dpkg -i gcc-*.deb
sudo dpkg -i make-*.deb
sudo dpkg -i tcl-*.deb

五、安装Redis

1. 解压Redis源码包

# 进入存放Redis安装包的目录
cd /home/youruser/redis-install

# 解压Redis源码包
tar xzf redis-7.2.4.tar.gz

# 进入解压后的目录
cd redis-7.2.4

注意​:根据实际下载的Redis版本号调整命令。

2. 编译Redis

# 编译Redis
make

编译过程可能需要几分钟,请耐心等待

如果编译成功,你将在目录中看到编译生成的Redis二进制文件,如src/redis-serversrc/redis-cli

如果编译失败,通常是由于缺少依赖或编译器问题。请确保已正确安装gcc和make,并且系统有足够的资源。

3. (可选)运行测试

Redis提供了测试套件,可以运行以确保编译正确。

# 运行测试(可选,需要tcl)
make test

注意​:运行测试可能需要一些时间,并且需要tcl库已正确安装。

4. 安装Redis到系统目录(可选)

默认情况下,Redis不会自动安装到系统目录。你可以选择将Redis的二进制文件复制到系统路径,或直接在源码目录中使用。

推荐方式:将Redis安装到/usr/local目录

# 安装Redis到/usr/local/bin等目录
sudo make install

这将会把以下文件安装到系统目录​:

  • redis-server:Redis服务器
  • redis-cli:Redis命令行客户端
  • redis-benchmark:Redis性能测试工具
  • redis-check-aofredis-check-rdb:数据文件检查工具

安装后,你可以在系统的任何位置使用这些命令

六、配置和启动Redis

1. 创建Redis配置和数据目录

# 创建Redis配置目录
sudo mkdir -p /etc/redis

# 创建Redis数据目录
sudo mkdir -p /var/lib/redis

# 创建Redis日志目录(可选)
sudo mkdir -p /var/log/redis

2. 复制默认配置文件

Redis源码目录中包含一个默认的配置文件redis.conf,你可以根据需要进行修改。

# 复制默认配置文件到/etc/redis目录
sudo cp redis.conf /etc/redis/redis.conf

3. 修改Redis配置文件

使用文本编辑器(如vi或nano)编辑配置文件,以适应你的需求。

# 使用vi编辑配置文件
sudo vi /etc/redis/redis.conf

重要配置项修改建议​:

  1. 绑定地址​(如果需要远程访问,谨慎配置): # 绑定到所有网络接口(默认只绑定127.0.0.1,仅本地访问) # 如果需要本地访问,保持默认即可 # bind 127.0.0.1 bind 0.0.0.0注意​:将Redis绑定到0.0.0.0将允许所有网络接口访问,​存在安全风险。建议仅在必要时这样做,并配合密码和防火墙配置。
  2. 设置密码​(强烈推荐): # 设置Redis访问密码 requirepass your_strong_passwordyour_strong_password替换为你自己设定的强密码
  3. 守护进程模式​(让Redis在后台运行): # 启用守护进程模式 daemonize yes
  4. 数据目录​: # 设置数据目录 dir /var/lib/redis
  5. 日志文件​(可选): # 设置日志文件路径 logfile /var/log/redis/redis-server.log

其他安全建议​:

  • 限制可访问的IP
  • 定期更新Redis到最新稳定版本
  • 配置防火墙规则,限制对Redis端口的访问(默认6379)

4. 创建Redis Systemd服务文件(推荐,用于管理Redis服务)

为了让Redis像其他系统服务一样管理(启动、停止、重启等),可以创建一个Systemd服务文件。

# 创建Redis Systemd服务文件
sudo vi /etc/systemd/system/redis.service

添加以下内容​:

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

注意​:

  • ExecStart:指定Redis服务器启动命令和配置文件路径
  • ExecStop:指定Redis关闭命令
  • 需要确保/usr/local/bin/redis-server/usr/local/bin/redis-cli路径正确(根据实际安装路径调整)

5. 创建Redis用户和组(推荐,提高安全性)

# 创建redis用户和组
sudo groupadd redis
sudo useradd -g redis -s /bin/false -d /var/lib/redis -M redis

# 设置数据目录权限
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

# 如果有日志目录,设置日志目录权限
sudo chown redis:redis /var/log/redis
sudo chmod 770 /var/log/redis

6. 重新加载Systemd并启动Redis服务

# 重新加载Systemd以识别新服务
sudo systemctl daemon-reload

# 启动Redis服务
sudo systemctl start redis

# 设置Redis开机自启
sudo systemctl enable redis

7. 检查Redis服务状态

# 检查Redis服务状态
sudo systemctl status redis

你应该看到Redis服务正在运行

8. 验证Redis是否正常工作

# 使用redis-cli连接到Redis服务器
redis-cli

# 如果设置了密码,使用以下命令认证
AUTH your_strong_password

# 测试Redis是否响应
PING

如果Redis正常工作,你应该会收到PONG的响应

或者使用以下命令一行完成连接和认证​:

redis-cli -a your_strong_password PING

注意​:在生产环境中,避免在命令行中直接使用密码,以防密码泄露。

七、防火墙配置(如果需要远程访问)

如果你的Redis需要被远程访问,确保服务器的防火墙允许Redis端口(默认6379)的流量

1. 对于使用firewalld的系统(如CentOS/RHEL 7及以上)

# 添加防火墙规则,允许6379端口
sudo firewall-cmd --permanent --add-port=6379/tcp

# 重新加载防火墙配置
sudo firewall-cmd --reload

2. 对于使用ufw的系统(如Ubuntu)

# 允许6379端口
sudo ufw allow 6379/tcp

# 重新加载防火墙配置
sudo ufw reload

再次强调​:允许远程访问Redis存在安全风险,务必设置强密码,并考虑使用VPN或SSH隧道等方式增强安全性。

八、总结

通过以上步骤,你已经成功在Linux服务器上离线安装并配置了Redis。以下是关键步骤的简要回顾:

  1. 在可联网的相同系统环境的机器上​:
    • 下载Redis源码包(如redis-7.2.4.tar.gz)
    • 下载编译和运行Redis所需的依赖包(如gcc、make、tcl的rpm或deb包)
  2. 将下载的安装包和依赖包传输到目标服务器
  3. 在目标服务器上​:
    • 安装编译和运行所需的依赖包(使用rpm或dpkg命令)
    • 解压Redis源码包
    • 编译Redis源码(使用make命令)
    • (可选)安装Redis到系统目录(使用make install命令)
    • 配置Redis(修改redis.conf配置文件)
    • 创建必要的目录(如配置目录、数据目录、日志目录)
    • (推荐)创建Systemd服务文件,以便管理Redis服务
    • 创建Redis用户和组,提高安全性
    • 启动并设置Redis服务开机自启
    • 验证Redis是否正常工作

注意事项​:

  • 安全​:Redis默认配置不适合直接暴露在公网,务必设置强密码,限制访问IP,使用防火墙保护Redis端口。
  • 持久化​:根据需求配置Redis的RDB或AOF持久化机制,以防止数据丢失。
  • 监控​:考虑使用监控工具监控Redis的运行状态和性能。
  • 备份​:定期备份Redis数据,确保数据安全。

如果在安装过程中遇到问题,可以参考Redis官方文档或在相关社区寻求帮助。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞78 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容