搭建redis 分布式高可用集群
自己撸的,一针一线!有图有真相!
准备一台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个从节点,从节点是用来备份主从点上数据,读写分离,减轻主节点压力,所以每个主节点下都至少要有一个从节点。主节点最少三个遵循着过半原则主节点正常运行必须 过半,否则不可用。提倡搭建时主节点 总数为奇数!
成功如下图:
在执行过集群创建中要输入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节点使用统一密码
常规操作如下:
Java API 后继更新添加到GitHub中
操作中遇到问题,欢迎在评论区留言一起探讨!
如果对你有帮助,点个赞。关注的话,可以在主页中看我更多的技术文档