搭建redis 分布式高可用集群

自己撸的,一针一线!有图有真相!
Redis集群至少需要3个master节点
1master对应1slave ,所以redis集群需要6个节点
准备一台Centos 机器,由于虚拟机有限,在此搭建个伪分布布在一台机器上部署6个redis 服务。同一ip下不同端口。真实的生产环境中只需要,把下面的配置和命令中对应的ip和端口更换即可!
去官网下载 安装包
http://download.redis.io/releases/redis-5.0.8.tar.gz

step1 解压缩

tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8

step2 安装

执行make命令进行编译 ,编译成功后 进入cd src 目录,执行 make install 命令 。
注:如果在编译中出错执行 yum install -y gcc g++ gcc-c++ make ,先make distclean 执行清除生成的文件,再make
还有错,没有jemalloc 而只有 libc 当然 make 出错。
这时候在编译过程时增加一个参数, 先执行make distclean 清除生成的文件再执行make MALLOC=libc 到这里就OK了。
make时报错如下:


image.png

make成功如下图


image.png

make install成功了如下图所示:


image.png

如图在该目录下创建以下目录cluster
pwd 当前位置


image.png

在cluster 文件夹中创建7001,7002,7003,7004,7005,7006
cd /root/redis-5.0.8 目录 下
分别copy redis.conf 到每个文件夹下


image.png

分别 修改配置它们各自的redis.conf


image.png

例其中一个redis.conf,配置大致相同,按照不同的文件夹名去修改对应的端口。

port 7002
pidfile /var/run/redis_7002.pid
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes-7002.conf
protected-mode no
requirepass 123456.
masterauth  123456.
appendonly yes
logfile "/tmp/redis7002.log"  

启动分别启动6个redis节点命令

image.png

查看启动的redis进程是否存在


image.png

到目前为止,就只是单纯的开了6个redis 服务,在此
创建集群启动命令

/root/redis-5.0.8/src/redis-cli --cluster create --cluster-replicas 1  192.168.13.204:7001 192.168.13.204:7002 192.168.13.204:7003 192.168.13.204:7004 192.168.13.204:7005 192.168.13.204:7006

发生错误


image.png

在原来的命令中加入 auth 的密码验证

/root/redis-5.0.8/src/redis-cli --cluster create --cluster-replicas 1  192.168.13.204:7001 192.168.13.204:7002 192.168.13.204:7003 192.168.13.204:7004 192.168.13.204:7005 192.168.13.204:7006  -a 123456.

--cluster-replicas 1 它是用来给每个主节点创建一个slave节点。常规操作来说,为了高可用,服务更加可靠稳定,容错率,集群必须最少要3个主节点,3个从节点,从节点是用来备份主从点上数据,读写分离,减轻主节点压力,所以每个主节点下都至少要有一个从节点。主节点最少三个遵循着过半原则主节点正常运行必须 过半,否则不可用。提倡搭建时主节点 总数为奇数!
成功如下图:

image.png

在执行过集群创建中要输入yes
image.png

image.png

至此,完成 了分布式的搭建,三主,三从。

集群在客户端上命令行使用

redis-cli -h 192.168.13.204 -p 7004 -c -a 123456.

-h 为ip地址,-p 为端口,-c 为集群操作(如果缺省,则不会在redis节点上自动切换),-a 为auth密码验证。强烈提醒一波所有redis节点使用统一密码
常规操作如下:

image.png

Java API 后继更新添加到GitHub中

操作中遇到问题,欢迎在评论区留言一起探讨!
如果对你有帮助,点个赞。关注的话,可以在主页中看我更多的技术文档

你可能感兴趣的:(搭建redis 分布式高可用集群)