在两台服务器上快速安装redis集群3主3从

需求:

10.10.249.50的root密码111111

10.10.249.51的root密码111111

在10.10.249.50和10.10.249.51上面搭建redis集群,要求3主3从

10.10.249.50上面主端口号7001,7002,7003

10.10.249.51上面从端口号7004,7005,7006

redis密码统一为123456

安装在/app/tools/redis下,并且安装完以后需要给新建的redis用户可读可写可执行的的权限

开机都不自启,需要优化一下

前提:

两台均已安装gcc,用root用户执行

yum install gcc

在10.10.249.50上执行,用root用户执行

#!/bin/bash

# 安装Redis
mkdir -p /app/tools/redis
cd /app/tools/redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar zxvf redis-5.0.7.tar.gz
cd redis-5.0.7
make && make PREFIX=/app/tools/redis install
cd /app/tools/redis
rm -rf redis-5.0.7

# 添加环境变量
export PATH=/app/tools/redis/bin:$PATH


# 创建配置文件
for port in {7001..7003}
do
    mkdir -p $port
    echo "
    bind 0.0.0.0
    protected-mode no
    port $port
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    requirepass 123456
    masterauth 123456
    " > ./$port/redis.conf
done

# 启动Redis实例
for port in {7001..7003}
do
    cd /app/tools/redis/$port
    nohup redis-server ./redis.conf > ./redis.log 2>&1 &
done

执行完以后ps -ef看有没有redis进程在运行

在10.10.249.51上执行

#!/bin/bash

# 安装Redis
mkdir -p /app/tools/redis
cd /app/tools/redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar zxvf redis-5.0.7.tar.gz
cd redis-5.0.7
make && make PREFIX=/app/tools/redis install
cd /app/tools/redis
rm -rf redis-5.0.7

# 添加环境变量
export PATH=/app/tools/redis/bin:$PATH


# 创建配置文件
for port in {7004..7006}
do
    mkdir -p $port
    echo "
    bind 0.0.0.0
    protected-mode no
    port $port
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    requirepass 123456
    masterauth  123456  
    " > ./$port/redis.conf
done

# 启动Redis实例
for port in {7004..7006}
do
    cd /app/tools/redis/$port
    nohup redis-server ./redis.conf > ./redis.log 2>&1 &
done

执行完以后ps -ef看有没有redis进程在运行

在10.10.249.50上执行

# 创建Redis集群
cd /app/tools/redis/7001
redis-cli --cluster create 10.10.249.50:7001 10.10.249.50:7002 10.10.249.50:7003 10.10.249.51:7004 10.10.249.51:7005 10.10.249.51:7006 --cluster-replicas 1 -a 123456

说明:

`nohup redis-server ./redis.conf > ./redis.log 2>&1 &`命令可以将Redis以后台守护进程方式运行,并且将运行日志输出到`redis.log`文件中。该命令的含义如下:

- `nohup`命令:将进程放入后台运行,并且避免在关闭终端时将该进程也关闭。

- `redis-server`命令:启动Redis服务。

- `./redis.conf`参数:指定Redis的配置文件。

- `> ./redis.log 2>&1`参数:将Redis运行日志输出到`redis.log`文件中。

- `&`符号:将Redis进程放入后台运行。

需要注意的是,使用该命令需要在Redis安装目录下执行,并且需要将`redis.conf`文件的路径改为相对路径或者绝对路径。

创建用户和组并且把那个安装目录权限由root转向redis用户,两台服务器都需要执行一下

groupadd -g 511 redis

useradd -u 511 -g redis redis

passwd redis  #更改密码

# 修改文件夹所属用户和权限

chown -R redis:redis /app/tools/redis

chmod -R 755 /app/tools/redis

连接测试:

redis-cli -h 10.10.249.50 -p 7001 -a  密码
127.0.0.1:7001> PING
PONG

或者这样也可以

启动节点:(举例)

cd /app/tools/redis/7001
nohup redis-server ./redis.conf > ./redis.log 2>&1 &

其中/usr/local/redis/7001是节点的安装目录,./redis.conf是节点的配置文件路径。

关闭节点:(举例)

redis-cli -h 10.10.249.50 -p 7001 -a 123456 shutdown

需要注意的是,关闭节点会导致节点失效,因此应该谨慎操作。建议在关闭节点之前先进行数据备份,以免数据丢失。

添加节点可以使用如下脚本:

#!/bin/bash

# 从节点所在的服务器信息
slave_host=10.10.249.51
slave_port=7007

# 主节点信息
master_host=10.10.249.50
master_port=7001

# 添加从节点到主节点
redis-cli -h $master_host -p $master_port --cluster add-node $slave_host:$slave_port $master_host:$master_port --cluster-slave --cluster-master-id $(redis-cli -h $master_host -p $master_port cluster nodes | grep master | awk '{print $1}' | head -n 1)

其中,slave_hostslave_port是需要添加的从节点的IP和端口,master_hostmaster_port是当前Redis集群中已存在的一个主节点的IP和端口。该脚本的含义是将新的从节点添加到已存在的Redis集群中,并将其设置为给定主节点的从节点。需要注意的是,这个脚本需要在已存在的Redis集群中的任意一个节点上运行。

删除节点可以使用如下脚本:

#!/bin/bash

# 要删除的节点信息
node_host=10.10.249.50
node_port=7001

# 获取集群节点信息
cluster_nodes=$(redis-cli --cluster info | grep -iE "^\d+\s+${node_host}:${node_port}" | awk '{print $1}')

# 从集群中删除节点
for node_id in $cluster_nodes; do
    redis-cli --cluster del-node ${node_host}:${node_port} ${node_id}
done

其中,node_hostnode_port是要删除的节点的IP和端口。该脚本的含义是从Redis集群中删除指定的节点,需要注意的是,这个脚本需要在已存在的Redis集群中的任意一个节点上运行。

加入开机自启:

可以将启动 Redis 的脚本加入开机自启动项,可以使用如下脚本:

在 10.10.249.50 上执行:

cat > /etc/systemd/system/redis@.service <<EOF 
[Unit] Description=Redis 
After=network.target

[Service] 
Type=forking 
User=redis Group=redis 
LimitNOFILE=1000000 
LimitNPROC=1000000 
LimitCORE=infinity 
ExecStart=/app/tools/redis/%i/redis-server 
/app/tools/redis/%i/redis.conf 
ExecReload=/bin/kill -USR2 $MAINPID 
ExecStop=/bin/kill -SIGINT $MAINPID 
Restart=always

[Install] 
WantedBy=multi-user.target 
EOF

systemctl daemon-reload

for port in {7001..7003} 
do 
systemctl enable redis@$port.service 
done

在 10.10.249.51 上执行:

cat > /etc/systemd/system/redis@.service <<EOF 
[Unit] Description=Redis 
After=network.target

[Service] 
Type=forking 
User=redis Group=redis 
LimitNOFILE=1000000 
LimitNPROC=1000000 
LimitCORE=infinity 
ExecStart=/app/tools/redis/%i/redis-server 
/app/tools/redis/%i/redis.conf 
ExecReload=/bin/kill -USR2 $MAINPID 
ExecStop=/bin/kill -SIGINT $MAINPID 
Restart=always

[Install] 
WantedBy=multi-user.target 
EOF

systemctl daemon-reload

for port in {7004..7006} 
do 
systemctl enable redis@$port.service 
done

这样就可以将 Redis 加入开机自启动项了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值