注意,本文档提供的所有IP和端口都要改成你自己的
注意,本文档提供的所有IP和端口都要改成你自己的
注意,本文档提供的所有IP和端口都要改成你自己的
0、设置hosts文件
cat << EOF > /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.141 redis-1
192.168.200.142 redis-2
192.168.200.143 redis-3
192.168.200.144 redis-4
192.168.200.145 redis-5
192.168.200.146 redis-6
EOF
1、下载Redis源码
wget https://kuberocker.oss-cn-shenzhen.aliyuncs.com/redis-src/redis-6.0.9.tar.gz
如果网速特别慢,可以用迅雷来下载
2、安装并配置scl(SoftwareCollections ),配置gcc 9环境
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
# 注意,如果只是临时用一下gcc 9,下面这一步不用做
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
3、编译安装Redis
mv redis-6.0.9.tar.gz /usr/local/src/
# /usr/local/src/是用于存放源码的目录,为了规范一点我们将文件移动至此目录下
tar zxvf /usr/local/src/redis-6.0.9.tar.gz
cd /usr/local/src/redis-6.0.9
make && make install
4、确认是否存在redis-server可执行文件
which redis-server
# 一般输出结果为/usr/local/bin/redis-server
5、创建Redis Systemd Unit File文件
cat << EOF > /etc/systemd/system/redis-server.service
[Unit]
Description=Redis data structure server
Documentation=https://redis.io/documentation
[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
LimitNOFILE=10032
NoNewPrivileges=yes
Type=forking
UMask=0077
[Install]
WantedBy=multi-user.target
EOF
chmod 777 /etc/systemd/system/redis-server.service
6、设置redis.conf
cat << EOF > /usr/local/etc/redis.conf
daemonize yes
port 6379
dir /var/lib/redis
cluster-enabled yes
cluster-config-file redis-cluster.conf
cluster-node-timeout 5000
bind 0.0.0.0
protected-mode no
save ""
appendonly no
requirepass dolphin@Redis!Cluster
masterauth dolphin@Redis!Cluster
logfile "/var/log/redis/redis.log"
EOF
7、设置各节点免密登录和并将准备好的文件复制到其他节点
# 在任意一台节点执行
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do ssh-copy-id $i;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do scp /etc/hosts $i:/etc/;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do ssh $i mkdir -p /var/log/redis/ /var/lib/redis/ ;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do scp /usr/local/bin/redis-* $i:/usr/local/bin/;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do scp /usr/local/etc/redis.conf $i:/usr/local/etc/;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do scp /etc/systemd/system/redis-server.service $i:/etc/systemd/system/;done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do ssh $i "systemctl daemon-reload";done
for i in `tail -n 6 /etc/hosts | awk '{print $1}'`;do ssh $i "systemctl enable redis-server && systemctl start redis-server";done
8、创建集群
redis-cli -a dolphin@Redis!Cluster --cluster create --cluster-replicas 1 192.168.200.141:6379 192.168.200.142:6379 192.168.200.143:6379 192.168.200.144:6379 192.168.200.145:6379 192.168.200.146:6379
9、查看集群状态
# 在任意一台节点执行都行,IP换成集群中的任意一台都行
redis-cli --cluster check 192.168.200.141:6379 -a dolphin@Redis!Cluster