目录
- 七、Linux二进制安装Redis集群
- 1 安装Redis所需依赖
- 2 单机安装Redis(7.2.4)
- 2.1 下载Redis
- 2.2 安装Redis
- 3 分布式部署模式(Redis Cluster)
- 3.1 分布式部署模式的配置文件
- 3.2创建集群
- 4 主从复制模式(Redis Sentinel)
- 4.1 主从复制模式的配置文件
- 4.2 Sentinel节点配置
七、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 安装完成。主从复制 ,在客户端使用