提供国内的包下载地址:
https://mirrors.huaweicloud.com/redis/
一,环境调整
#调整内核
cat >> /etc/sysctl.conf <<EOF
vm.overcommit_memory = 1
net.core.somaxconn = 1024
EOF
sysctl -p
# 修改文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
#下载包
wget https://mirrors.huaweicloud.com/redis/redis-7.0.5.tar.gz
二,安装依赖并编译
# 安装依赖
yum install -y gcc make tcl
tar xzf redis-7.0.5.tar.gz
cd redis-7.0.5
make -j$(nproc)
make install PREFIX=/usr/local/redis
三,创建目录并编写配置文件(3台主机执行)
# 创建必要目录
mkdir -p /etc/redis /var/log/redis /var/lib/redis/{7000,7001}
#在每台上配置两个节点
cat > /etc/redis/7000.conf <<EOF
port 7000
cluster-enabled yes
cluster-config-file /var/lib/redis/7000/nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
pidfile /var/run/redis_7000.pid
logfile /var/log/redis/7000.log
dir /var/lib/redis/7000
maxmemory 4GB
maxmemory-policy volatile-lru
tcp-backlog 511
bind 0.0.0.0
protected-mode no
requirepass 密码
masterauth 密码
cluster-announce-ip $(hostname -I | awk '{print $1}')
cluster-announce-port 7000
cluster-announce-bus-port 17000
EOF
cat > /etc/redis/7001.conf <<EOF
port 7001
cluster-enabled yes
cluster-config-file /var/lib/redis/7001/nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
pidfile /var/run/redis_7001.pid
logfile /var/log/redis/7001.log
dir /var/lib/redis/7001
maxmemory 4GB
maxmemory-policy volatile-lru
tcp-backlog 511
bind 0.0.0.0
protected-mode no
requirepass 密码
masterauth 密码
cluster-announce-ip $(hostname -I | awk '{print $1}')
cluster-announce-port 7001
cluster-announce-bus-port 17001
EOF
四,system管理(3台主机执行)
# 创建systemd服务文件
cat > /etc/systemd/system/redis@.service <<EOF
[Unit]
Description=Redis Cluster Node %i
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/%i.conf
ExecStop=/usr/local/redis/bin/redis-cli -p %i shutdown
Restart=always
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
EOF
# 创建redis用户
useradd -s /sbin/nologin redis
chown -R redis:redis /var/lib/redis /var/log/redis
# 启动服务
systemctl daemon-reload
systemctl enable redis@7000 redis@7001
systemctl start redis@7000 redis@7001
五,创建集群并开放端口
##创建redis集群
# 假设三台主机IP为 192.168.1.1, 192.168.1.2, 192.168.1.3
/usr/local/redis/bin/redis-cli --cluster create \
192.168.1.1:7000 192.168.1.1:7001 \
192.168.1.2:7000 192.168.1.2:7001 \
192.168.1.3:7000 192.168.1.3:7001 \
--cluster-replicas 1 \
-a '密码'
##配置防火墙
# 开放Redis端口
firewall-cmd --permanent --add-port=7000-7001/tcp
firewall-cmd --permanent --add-port=17000-17001/tcp
firewall-cmd --reload
六,验证
##验证集群状态
# 检查集群节点
/usr/local/redis/bin/redis-cli -c -p 7000 -a '&^%TR_54rty' cluster nodes
# 检查集群健康
/usr/local/redis/bin/redis-cli -c -p 7000 cluster info