redis cluster集群安装部署

这里是本地虚拟机演示cluster集群部署,所以直接安装了6个节点,模拟的是3个服务器,每台服务器安装2个redis进程,6个redis组成集群。

(1)环境准备

Linux操作系统、redis5.0.2.tar.gz

确认操作系统中安装gcc,如果没有安装,使用yum install gcc安装。没有gcc,编译时会报错

(2)redis部署

1.将压缩包解压到路径

cd /app; tar -zxvf redis-5.0.2.tar.gz

2.编译redis

cd /app/redis-5.0.2; make

3.复制6个redis

cd /app; for X in {1..6}; do cp -aR redis-5.0.2 redis-5.0.2_instance"$X"; mkdir redis-5.0.2_instance"$X"/redis_logs redis-5.0.2_instance"$X"/redis_data; done

4.修改redis.conf配置文件

cd /app; for X in {1..6}; do cd redis-5.0.2_instance"$X"; sed -i -e 's/bind 127.0.0.1/#bind 127.0.0.1/g' redis.conf; sed -i -e 's/protected-mode yes/protected-mode no/g' redis.conf; sed -i -e "s/port 6379/port 4379"$X"/g" redis.conf; sed -i -e "s/dir .\//dir \/app\/redis-5.0.2_instance"$X"\/redis_data/g" redis.conf; sed -i -e "s/logfile \"\"/logfile \/app\/redis-5.0.2_instance"$X"\/redis_logs\/redis.log/g" redis.conf; sed -i -e 's/daemonize no/daemonize yes/g' redis.conf; sed -i -e "s/redis_6379.pid/redis_4379"$X".pid/g" redis.conf; sed -i -e "s/dbfilename dump.rdb/dbfilename dump"$X".rdb/g" redis.conf; sed -i -e 's/appendonly no/appendonly yes/g' redis.conf; sed -i -e "s/appendonly.aof/appendonly"$X".aof/g" redis.conf; echo "cluster-config-file nodes-4379$X.conf">>redis.conf; echo "cluster-enabled yes">>redis.conf; cd ..; done

a、bind 127.0.0.1注释掉。该指令用于限制 Redis 服务器只监听本地计算机的连接请求。 它提高了 Redis 服务器的安全性,同时也能满足本地开发和测试的需求。 在需要远程访问 Redis 的情况下,你需要修改 bind 指令,但同时需要注意安全风险。

b、protected-mode改为no,我们使用密码认证连接redis,这里保护策略设为no。

c、修改端口

d、修改持久化目录dir

f、修改日志文件目录logfile

g、daemonize改为yes,配置Redis 服务器作为守护进程运行

h、配置pidfile。当 Redis 以守护进程模式运行时,它会将自己的 PID(进程ID)写入配置文件 pidfile 指定的文件中

i、配置dbfilename。虽然我们选择的是aof模式

j、appendonly设置为yes,启用 Redis 的 AOF (Append Only File) 持久化模式

k、配置aof文件

l、添加cluster-config-file,指定 Redis 集群的配置文件的路径和名称

m、添加cluster-enabled yes。开启集群模式

5.开通防火墙

firewall-cmd --permanent --add-port=43791/tcp
firewall-cmd --permanent --add-port=43792/tcp
firewall-cmd --permanent --add-port=43793/tcp
firewall-cmd --permanent --add-port=43794/tcp
firewall-cmd --permanent --add-port=43795/tcp
firewall-cmd --permanent --add-port=43796/tcp
firewall-cmd --reload

6.做成服务

for X in {1..6}; do cp /app/redis-5.0.2_instance"$X"/utils/redis_init_script /etc/init.d/redis"$X"; done

修改脚本参数 

cd /etc/init.d/; for X in {1..6}; do sed -i -e "s/REDISPORT=6379/REDISPORT=4379"$X"/g" redis"$X"; sed -i -e "s/EXEC=\/usr\/local\/bin\/redis-server/EXEC=\/app\/redis-5.0.2_instance"$X"\/src\/redis-server/g" redis"$X"; sed -i -e "s/CLIEXEC=\/usr\/local\/bin\/redis-cli/CLIEXEC=\/app\/redis-5.0.2_instance"$X"\/src\/redis-cli/g" redis"$X"; sed -i -e"s/CONF=\"\/etc\/redis\/\${REDISPORT}.conf\"/CONF=\"\/app\/redis-5.0.2_instance"$X"\/redis.conf\"/g" redis"$X"; sed -i -e "s/\$EXEC \$CONF/\$EXEC \$CONF \&/g" redis"$X"; sed -i -e "s/\$CLIEXEC -p \$REDISPORT/\$CLIEXEC -p \$REDISPORT -a \$PASSWORD/g" redis"$X"; sed -i '/END INIT INFO/a PASSWORD=passwd123' redis"$X";  done

 添加服务

cd /etc/init.d
for X in {1..6}; do chkconfig --add redis"$X";   done

为了启停方便,直接将启停写在脚本中,我把它放在/app下

startRedisCluster.sh:

for X in {1..6};do service redis"$X" start; done

stopRedisCluster.sh

for X in {1..6}; do service redis"$X" stop; done

7.启动redis服务

for X in {1..6}; do service redis"$X" start;   done

8.创建cluster集群

cd /app/redis-5.0.2; src/redis-cli --cluster create ip:43791 ip:43792 ip:43793 ip:43794 ip:43795 ip:43796 --cluster-replicas 1

ip替换成自己的ip,如:

执行后如下

确认后就会分配槽

9.查看Redis分配状态

登录一个节点后,执行cluster nodes。可主从节点以及主节点分配的槽等信息

例:cd /app/redis-5.0.2_instance1/src/; ./redis-cli -p 43791。再执行cluster nodes。

10.添加密码

for X in {1..6}; do cd /app/redis-5.0.2_instance"$X";echo "masterauth \"passwd123\"">>redis.conf;echo "requirepass \"passwd123\"">>redis.conf; done

然后重启redis

./stopRedisCluster.sh

./startRedisCluster.sh

11.验证

 登录其中一个节点./redis-cli -c -p 43791 -a passwd123,设置一些key-value,如下

可以看到集群可以正常工作,key被缓存到不同的主节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值