Redis的单机和集群搭建(伪分布式)(二)

Redis的单机和集群搭建(伪分布式)

二、集群搭建

因为redis的投票机制(投票过半认为某个节点挂了,那么某个节点就挂了),节点数为单数,所以集群的话至少需要3个节点
为了保证数据的完整和高可用性,每个节点至少需要一个备用节点,也就是3*2个节点
(本人不可能有六台电脑,也不可能有能同时开6个虚拟机的电脑,所以还是和别人一样,虚拟出6个实列 1001-1006)
1、创建集群的文件夹(redis-cluster)

mkdir redis-cluster
cd redis-cluster
mkdir -p redis01/data redis02/data redis03/data redis04/data redis05/data redis06/data
mkdir bin 

除了第一个data文件夹要建,剩余的可建可不建,后面会直接复制redis01的所有文件到其余文件夹中,bin存放可复制的可执行文件
2、复制单机中/redis/src里的可执行文件至bin中,即,带绿色的那些文件

cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel redis-trib.rb /redis-cluster/bin

3、将单机的/redis的所有文件复制在/redis-cluster/redis01中

cp -r /redis/* /redis-cluster/redis01  (-r 递归 )

4、修改redis01的redis.conf文件
如果想把6个节点的log文件放在一起,修改redis.conf时把"logfile" 指定为统一路径,并把redis01/log文件夹删除

如果分开放,修改redis.conf的"logfile"路径为/redis-cluster/redis01/log/redis-log.log (redis01为创建的6个文件夹的名称)

bind 192.168.23.143 当前IP地址,因为是一个虚拟机,所有6个都是本机IP

port 1001 端口号,我的是1001至1006

dir /redis-cluster/redis01/data/(数据文件存放位置,同样:redis01为创建的6个文件夹的名称)

pidfile /var/run/redis_1001.pid(1001和port要对应)

appendonly yes

放开三个注释:
cluster-enabled yes(启动集群模式)
cluster-config-file nodes-1001.conf(1001和port要对应)
cluster-node-timeout 15000
5、将修改好的redis01复制到其余创建好的文件夹中并修改redis.conf

cp -r /redis-cluster/redis01/* /redis-cluster/redis02
cp -r /redis-cluster/redis01/* /redis-cluster/redis03
cp -r /redis-cluster/redis01/* /redis-cluster/redis04
cp -r /redis-cluster/redis01/* /redis-cluster/redis05
cp -r /redis-cluster/redis01/* /redis-cluster/redis06

log如果放在一起无需修改,分开则修改/redis-cluster/redis01/log/redis-log.log
如log放在一起 需要修改3个端口号,一个地址 共4处
如log分开放置 需要修改3个端口号,两个地址 共5处
三个端口:
1、 port 1001
2、 cluster-config-file nodes-1001.conf
3、pidfile /var/run/redis_1001.pid
地址:
1、log分开:/redis-cluster/redis01/log/redis-log.log、dir /redis-cluster/redis01/data
2、log放在一起:dir /redis-cluster/redis01/data
vim 替换命令

:%s/{被替换的字段}/{替换的字段}/g
eg----> :%s/1001/1003/g    (g为全部替换)

6、创建集群
将6个redis启动,现在他们还没有任何联系,都是单独的,现在将6个正在运行的redis融合成一个集群

cd /redis-cluster/bin
./redis-cli --cluster create 192.168.23.143:1001 192.168.23.143:1002 192.168.23.143:1003 192.168.23.143:1004 192.168.23.143:1005 192.168.23.143:1006 --cluster-replicas 1

5.0以上版本的redis集群不再使用ruby来创建集群了,可以直接使用./redis-cli --cluster create ip:port ip:port … --cluster-replicas 1来创建 (–cluster-replicas 1:一个主节点对应一个从节点)
在此次命令完成后,系统会提示是否创建,输入yes继续
在这里插入图片描述
M:主节点 S:从节点,都能看到相应的port
每次开、关6个服务都浪费时间,所有可以在bin里写一个脚本,同时开关6个redis
1、开启服务

cd /redis-cluster/bin
vim start-all.sh

在start-all.sh写以下命令
cd /redis-cluster/bin
./redis-server ../redis01/redis.conf
./redis-server ../redis02/redis.conf
./redis-server ../redis03/redis.conf
./redis-server ../redis04/redis.conf
./redis-server ../redis05/redis.conf
./redis-server ../redis06/redis.conf

2、关闭服务

cd /redis-cluster/bin
vim stop-all.sh

在stop-all.sh写以下命令(ip和port要写自己的)
cd /redis-cluster/bin
./redis-cli -h 192.168.23.143 -p 1001 shutdown
./redis-cli -h 192.168.23.143 -p 1002 shutdown
./redis-cli -h 192.168.23.143 -p 1003 shutdown
./redis-cli -h 192.168.23.143 -p 1004 shutdown
./redis-cli -h 192.168.23.143 -p 1005 shutdown
./redis-cli -h 192.168.23.143 -p 1006 shutdown

给这两个脚本赋予执行权限

chmod +x start-all.sh
chmod +x stop-all.sh

查看它们变绿了就可以使用了

./start-all.sh
./stop-all.sh

至此Redis的单机和集群(伪分布式)就完成了,没什么难度,就是修改文件什么的比较烦,即将完成的时候虚拟机还挂了,笑了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值