七、Linux二进制安装Redis集群

七、Linux二进制安装Redis集群

注意:如果只需要分布式部署,前面看完就可以了,主从复制除非特定,一般不需要配置

1 安装Redis所需依赖

yum install -y gcc tcl

2 单机安装Redis(7.2.4)

2.1 下载Redis

下载地址:Redis下载地址
百度网盘:百度网盘下载

2.2 安装Redis

将文件放到 /opt下

tar -zxvf /opt/redis-7.2.4.tar.gz

进入到文件目录

cd /opt/redis-7.2.4

执行编译命令

make && make install

第一次安装回头有点慢,耐心等待!
安装完成后,在 /usr/local/bin/下可以看到这些文件
在这里插入图片描述
创建文件目录

mkdir -p /opt/redis/{data,logs}

在这里插入图片描述

3 分布式部署模式(Redis Cluster)

3.1 分布式部署模式的配置文件

创建配置文件

cat > /opt/redis/redis-cluster.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/cluster-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "cluster-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 从节点连接到主节点所需的密码
masterauth "123456"
# 是否开启集群
cluster-enabled yes
# 集群端口
cluster-port 16379
# 生成的node文件,记录集群节点信息,默认为 nodes.conf
cluster-config-file nodes-6379.conf
#节点连接超时时间
cluster-node-timeout 20000
EOF

创建启动文件

cat > /etc/systemd/system/redis-server.service <<EOF
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-cluster.conf

ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target
EOF

服务启动命令

# 重新加载服务配置文件(先执行这个)
systemctl daemon-reload
# 启动服务
systemctl start redis-server.service
# 重启服务
systemctl restart redis-server.service
# 服务自启动
systemctl enable redis-server.service
# 停止服务
systemctl stop redis-server.service
# 服务状态
systemctl status redis-server.service

连接cli查看

cd /usr/local/bin/
./redis-cli -a 123456

在这里插入图片描述
上述单机安装在三台机器上都进行安装后,执行下面的步骤(上面安装完可以通过客户端连接看看是否成功)

3.2创建集群

确保你的集群在hosts存在

vi /etc/hosts

在这里插入图片描述

cd /usr/local/bin/
./redis-cli --cluster create 192.168.200.161:6379 192.168.200.162:6379 192.168.200.163:6379 -a 123456

中间直接 yes
在这里插入图片描述
验证集群(随便一个IP)

./redis-cli -c -h 192.168.200.162 -p 6379 -a 123456
cluster info

在这里插入图片描述
插入name
在这里插入图片描述
在另一台机器上查看
在这里插入图片描述

4 主从复制模式(Redis Sentinel)

4.1 主从复制模式的配置文件

主节点配置

cat > /opt/redis/redis-sentinel.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "sentinel-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
EOF

两个从点配置(注意replicaof 根据自己的修改)

cat > /opt/redis/redis-sentinel.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# 从节点连接到主节点所需的密码
masterauth "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "sentinel-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 指向主节点
replicaof 192.168.200.161 6379
EOF

启动文件配置(三个相同)

cat > /etc/systemd/system/redis-server.service <<EOF
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-sentinel.conf

ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target
EOF

启动方式

# 重新加载服务配置文件
systemctl daemon-reload
# 启动服务
systemctl start redis-server.service
# 重启服务
systemctl restart redis-server.service
# 服务自启动
systemctl enable redis-server.service
# 停止服务
systemctl stop redis-server.service
# 服务状态
systemctl status redis-server.service

4.2 Sentinel节点配置

Sentinel配置文件(三个相同)

cat > /opt/redis/redis-sentinel-26379.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 26379
# 关闭保护模式
protected-mode no
# Redis 服务器的密码
requirepass "123456"
# 从节点连接到主节点所需的密码
masterauth "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-26379.log"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 设置 Sentinel 监视的 Redis 主节点 mymaster 的认证密码
sentinel auth-pass mymaster 123456
# Sentinel 监视名为 mymaster 的 Redis 主节点
sentinel monitor mymaster 192.168.200.161 6379 2
# 配置指定了 Sentinel 在认为主节点不可用之前等待的毫秒数
sentinel down-after-milliseconds mymaster 10000
# 定了在进行故障转移时,同时同步的从节点数量
sentinel parallel-syncs mymaster 1
# 配置定义了执行故障转移的超时时间
sentinel failover-timeout mymaster 60000
EOF

Sentinel启动文件(三个相同)
注意这里的 ExecStart ,不在/usr/local/bin下,而是在源文件解压 make 后的文件夹中

cat > /etc/systemd/system/redis-sentinel.service <<EOF
[Unit]
Description=The redis-sentinel Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/var/run/redis_sentinel_6379.pid
ExecStart=/opt/redis-7.2.4/src/redis-sentinel /opt/redis/redis-sentinel-26379.conf

ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target
EOF

启动命令

# 重新加载服务配置文件
systemctl daemon-reload
# 启动服务
systemctl start redis-sentinel.service
# 重启服务
systemctl restart redis-sentinel.service
# 服务自启动
systemctl enable redis-sentinel.service
# 停止服务
systemctl stop redis-sentinel.service
# 服务状态
systemctl status redis-sentinel.service

检验测试
选择主节点客户端

/usr/local/bin
info replication

在这里插入图片描述
从节点
在这里插入图片描述
任选一节点
在这里插入图片描述
自此,redis 安装完成。主从复制 ,在客户端使用
在这里插入图片描述

<think>好的,我现在要帮用户解决在Linux环境下使用完整的二进制包进行Redis离线安装的问题。首先,我需要回忆一下Redis安装步骤,尤其是离线安装的情况。用户提到的是使用完整的二进制包,所以应该不需要从源码编译,而是直接下载预编译好的二进制文件。 首先,离线安装通常意味着用户无法通过包管理器在线下载依赖或软件包,所以需要提前准备好所有必要的文件。Redis的官方网站提供了稳定版的二进制包,用户需要先在有网络的环境下下载这些包,然后传输到目标服务器进行安装。 接下来,我需要考虑步骤的完整性。第一步应该是下载Redis二进制包,用户需要访问Redis.io获取最新版本链接。比如,当前最新的稳定版可能是7.2.4,所以下载链接应该是类似https://download.redis.io/releases/redis-7.2.4.tar.gz这样的。用户需要将这个tar.gz文件下载下来,然后通过U盘或者内部网络传输到目标Linux机器。 第二步是上传和解压。用户需要将包上传到服务器的某个目录,比如/opt,然后使用tar命令解压。这里可能需要确认用户是否有权限操作这些目录,可能需要sudo权限。 第三步是安装依赖。虽然用户想要离线安装,但Redis二进制包可能仍然需要一些系统库,比如gcc、libc等,用于编译或运行。不过,如果是预编译的二进制文件,可能依赖较少。但为了确保,可能需要检查是否有这些依赖的离线安装包,或者在离线环境中提前安装好。比如,用户可能需要提前下载好这些依赖的rpm或deb包,然后通过rpm或dpkg安装。 第四步是编译安装。如果下载的是源码包,则需要make命令,但用户要的是二进制包,可能不需要编译。这里可能存在误解,因为通常Redis的tar.gz文件是源码,需要编译安装。如果是真正的二进制包,解压后应该可以直接使用。所以需要确认用户的需求。如果用户确实需要二进制安装,可能需要调整步骤,比如直接解压后配置环境变量,或者复制可执行文件到/usr/local/bin。 第五步是配置和启动。用户可能需要复制配置文件到/etc/redis目录,并修改配置,比如设置守护进程运行,数据目录等。然后启动Redis服务,设置开机自启。 另外,用户提供的引用中有提到Docker相关的安装步骤,但用户的问题是关于Redis的离线安装,可能需要忽略这些引用,除非用户想用Docker来安装Redis,但问题明确提到使用二进制包进行离线安装,所以可能不需要涉及Docker。 可能还需要考虑权限问题,比如创建redis用户,设置目录权限,以及防火墙配置,开放Redis的端口6379。 此外,用户可能需要验证安装是否成功,通过运行redis-cli ping命令检查是否返回PONG。 总结步骤应该是: 1. 下载二进制包并传输到目标机器。 2. 解压到指定目录。 3. 安装必要的依赖(离线情况下需提前准备)。 4. 复制可执行文件到系统路径,或直接运行。 5. 配置Redis,包括配置文件和目录权限。 6. 启动服务并测试。 7. 设置开机自启动。 可能还需要注意,如果二进制包是已经编译好的,可能包含redis-server、redis-cli等可执行文件,直接复制到/usr/local/bin即可,而无需编译。但需要确认提供的包是否真是二进制,还是源码。如果是源码,用户可能需要离线安装gcc等编译工具链,这会增加复杂度。因此,用户的问题可能需要明确是使用预编译二进制还是源码编译安装,但根据问题描述,用户希望使用完整的二进制包,所以应避免编译步骤。 另外,用户可能需要将必要的运行时库包含在离线环境中,比如tcl,因为Redis的测试套件需要tcl,但如果没有网络,可能无法运行测试,但用户可能只需要安装,不需要运行测试。 最后,生成相关问题需要考虑用户可能遇到的后续问题,比如配置优化、权限设置、开机启动脚本、集群配置等。</think>### Linux环境下Redis的完整二进制包离线安装方法 #### 1. **准备离线二进制包** - 从Redis官网下载最新稳定版二进制包(含编译好的可执行文件)[^1],例如: ```bash wget https://download.redis.io/releases/redis-7.2.4.tar.gz ``` - 将下载的压缩包通过U盘或内部网络传输到目标服务器。 #### 2. **解压二进制包** ```bash tar -xzvf redis-7.2.4.tar.gz -C /opt cd /opt/redis-7.2.4 ``` #### 3. **安装依赖(需提前离线准备)** Redis依赖`libc`等基础库。若目标系统缺失,需提前下载对应依赖包: - 对于CentOS/RHEL,离线安装`glibc`: ```bash rpm -ivh glibc-2.17-326.el7_9.x86_64.rpm # 示例版本 ``` - 对于Ubuntu/Debian,离线安装`libc6`: ```bash dpkg -i libc6_2.31-0ubuntu9_amd64.deb # 示例版本 ``` #### 4. **部署Redis可执行文件** ```bash sudo cp src/redis-server /usr/local/bin/ sudo cp src/redis-cli /usr/local/bin/ sudo chmod +x /usr/local/bin/redis-server /usr/local/bin/redis-cli ``` #### 5. **配置Redis服务** - 创建配置和数据目录: ```bash sudo mkdir /etc/redis /var/lib/redis sudo cp redis.conf /etc/redis/6379.conf ``` - 修改配置文件`/etc/redis/6379.conf`: ```conf daemonize yes dir /var/lib/redis ``` #### 6. **启动Redis服务** ```bash redis-server /etc/redis/6379.conf ``` #### 7. **验证安装** ```bash redis-cli ping # 应返回 "PONG" ``` #### 8. **设置开机自启(可选)** - 对于Systemd系统(如CentOS 7+/Ubuntu 16.04+): ```bash sudo cp utils/systemd-redis_server.service /etc/systemd/system/redis.service sudo systemctl enable redis ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值