13redis单主机多实例集群

redis集群脚本

#!/bin/bash
# 时间:2021年5月19日15点05分
# 项目:单主机多实例的redis集群快速部署
# 最新修改时间:2021年5月31日12点01分
# 修改:简化屏幕输出

# 1.创建目录,三个redis实例
groupadd -g 1000 redis &>/dev/null
useradd redis -u 1000 -g 1000 -M -s /sbin/nologin &>/dev/null

mkdir -p  /opt/redis_cluster/redis_{6379..6381}/{conf,pid,logs} 
mkdir -p /data/redis_cluster/redis_{6379..6381}

chown -R redis:redis /data/redis* &>/dev/null
chown -R redis:redis /opt/redis* &>/dev/null

# 2.下载redis的源码包
cd /usr/local/src/
if [ ! -f "redis-5.0.7.tar.gz" ];then
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz  &>/dev/null
    tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/ 
    else
    tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/
fi

# 3.创建软连接
cd /opt/redis_cluster/
ln -s redis-5.0.7 redis &>/dev/null

# 4.生成可执行的二进制文件并将其复制到/usr/bin下
cd redis
make &>/dev/null
make install &>/dev/null
# #############如何生成redis的配置文件#############
# 默认的配置文件在redis的目录下名为redis.conf
# 想要自动生成redis的配置文件可以进行一下的操作:
#       cd utils
#       ./install_server.sh &>/dev/null
# ################################################

# 5.自定义redis的配置文件
cd
cat > /opt/redis_cluster/redis_6379/conf/redis_6379.conf <<EOF
bind `ifconfig eth0|awk 'NR==2{print $2}'`
port 6379
daemonize yes
pidfile "/opt/redis_cluster/redis_6379/pid/redis_6379.pid"
logfile "/opt/redis_cluster/redis_6379/logs/redis_6379.log"
dbfilename "redis_6379.rdb"
dir "/data/redis_cluster/redis_6379/"
save 900 1
save 300 10
save 60 10000
# 单节点不需要加入一下信息
cluster-enabled yes
cluster-config-file nodes_6379.conf
cluster-node-timeout 15000

EOF

# 6.为其他多实例创建配置文件

cp  /opt/redis_cluster/redis_6379/conf/redis_6379.conf /opt/redis_cluster/redis_6380/conf/redis_6380.conf
cp  /opt/redis_cluster/redis_6379/conf/redis_6379.conf /opt/redis_cluster/redis_6381/conf/redis_6381.conf

sed -i s/6379/6380/g /opt/redis_cluster/redis_6380/conf/redis_6380.conf
sed -i s/6379/6381/g /opt/redis_cluster/redis_6381/conf/redis_6381.conf

# 7.启动所有的redis
redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf 
redis-server /opt/redis_cluster/redis_6380/conf/redis_6380.conf 
redis-server /opt/redis_cluster/redis_6381/conf/redis_6381.conf 

# 8.system启动配置
cat >/usr/lib/systemd/system/redis-master.service<<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli -h $(ifconfig eth0|awk 'NR==2{print $2}') -p 6379 shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF

# 9.初始化集群环境
redis-cli -h 192.168.66.66 -p 6379 FLUSHALL
redis-cli -h 192.168.66.66 -p 6379 CLUSTER RESET
redis-cli -h 192.168.66.66 -p 6380 FLUSHALL
redis-cli -h 192.168.66.66 -p 6380 CLUSTER RESET
redis-cli -h 192.168.66.66 -p 6381 FLUSHALL
redis-cli -h 192.168.66.66 -p 6381 CLUSTER RESET



# 10.创建集群
echo yes | redis-cli --cluster create 192.168.66.66:6379 192.168.66.66:6380 192.168.66.66:6381

# 11.查看集群节点信息
redis-cli  -c -h  192.168.66.66 -p 6379 cluster nodes
sleep 5
redis-cli  -c -h  192.168.66.66 -p 6379 cluster info

# ################################脚本完成################################

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容