Redis5以上版本伪集群搭建(高可用集群模式)
redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下:
第一步:在第一台机器的/usr/local/redis下创建文件夹redis-cluster,然后在其下面创建6个文件夹如下:
mkdir -p /usr/local/redis/redis-cluster
进入redis-cluster目录,创建6个文件夹
mkdir 7001 7002 7003 7004 7005 7006
第二步:把之前的redis.conf配置文件copy到7001下,修改如下内容:
cp /usr/local/redis/redis-5.0.5/redis.conf /usr/local/redis/redis-cluster/7001
说明:redis-5.0.5为解压的源码包
修改如下配置:
daemonize yes //redis后台运行
port 7001 (分别对每个机器的端口号进行设置)
pidfile /var/run/redis_7001.pid //pidfile文件对应7000,7002,7003...7006
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes-7001.conf //集群的配置 配置文件首次启动自动生成 7001,7002,7003...7006
cluster-node-timeout 5000 //请求超时 设置5秒够了
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
bind 127.0.0.1 (去掉bind绑定访问ip信息)
protected-mode no (关闭保护模式)
#dir /usr/local/redis/redis-cluster/7001/ (指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,若该配置 不存在,请自行添加)
如果要设置密码需要增加如下配置:
requirepass xxx (设置redis访问密码)
masterauth xxx (设置集群节点间访问密码,跟上面一致)
第三步:把修改后的配置文件,copy到8002-8006,修改第2、3、5项里的端口号,可以用批量替换:
先复制:
cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7002
cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7003
cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7004
cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7005
cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7006
然后分别到对应的目录下 把redis.conf 执行 vim
%s/源字符串/目的字符串/g
:%s/7001/7002/g
:%s/7001/7003/g
:%s/7001/7004/g
:%s/7001/7005/g
:%s/7001/7006/g
把7001替换为7002
全局替换 和 目录保持一致, 比如目录是 7003则 替换为7003
第四步:分别启动6个redis实例,然后检查是否启动成功
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7002/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7003/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7004/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7005/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7006/redis.conf
查看是否启动成功
使用ps-ef|grep redis 看下是否启动成功6个节点
ps -ef|grep redis
第五步:用redis-cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)
执行命令
/usr/local/redis/bin/redis-cli --cluster create 192.168.83.102:7001 192.168.83.102:7002 192.168.83.102:7003 192.168.83.102:7004 192.168.83.102:7005 192.168.83.102:7006 --cluster-replicas 1
说明:redis 5.x的集群创建不需要ruby环境了
--cluster-replicas 1 命令的意思是创建master的时候同时创建一个slave
ip不要使用127.0.0.1,否则在使用java代码操作集群时会报错,会提示连接错乱。
会创建一个3master 3slaver的集群
输入yes
看到这说明集群都创建完了
第七步:验证集群:
1)连接任意一个客户端即可:
./redis-cli -c -a xxx -h 192.168.5.100 -p 7001
提示:-a访问服务端密码,-c表示集群模式,指定ip地址和端口号(若没有密码,-a xxx可省略)
执行此命令:
打开端口为7001的客户端 set一个值
./redis-cli -c -h 192.168.83.102 -p 7001
退出该节点,进入7002端口:
发现,7002端口也可以取值
2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)
3)进行数据操作验证
4)关闭集群则需要逐个进行关闭,使用命令:(模板)
/usr/local/redis/src/redis-cli -a xxx -c -h 192.168.0.60 -p 8001 shutdown
执行如下命令:
/usr/local/redis/bin/redis-cli -c -p 7001 shutdown
说明7001已关闭
提示:在搭建集群后,依然可以进行主从复制的操作,备份数据。
参考:
https://www.jianshu.com/p/8045b92fafb2
https://blog.csdn.net/qq_36514588/article/details/83856795
https://blog.csdn.net/woyixinyiyi/article/details/87967911
https://blog.csdn.net/hoopopo_wll/article/details/84925563
https://my.oschina.net/ruoli/blog/2252393 (redis5 提供了关闭集群的工具)
在这里非常感谢以上作者的劳动果实。
Redis5以上版本伪集群搭建(高可用集群模式)的更多相关文章
- Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.nginx 原理与优化参数配置 master-workers 的机制的好处 首先,对于每个 ...
- CentOS 7下搭建高可用集群
一 .安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件. 二.配置防火墙1.禁止防火墙和selinux# ...
- centos7 rabbitmq集群搭建+高可用
环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -r -.el ...
- ActiveMQ+ZooKeeper搭建高可用集群
一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper ...
- Hadoop-HA 搭建高可用集群Hadoop Zookeeper
Hadoop Zookeeper 搭建(一) 一.准备工作 VMWARE虚拟机 CentOS 7 系统 虚拟机1:master 虚拟机2:node1 虚拟机3:node2 时间同步 ntpdate n ...
- keepalive + nginx 搭建高可用集群动态网站
环境准备: 两台节点部署keepalived,并且设为互为主从,实现高可用. 两台从节点部署nginx以及相关组件,作为真实服务器实现动态网站上线. 一.MASTER(BACKUP)节点下载keepa ...
- 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群
1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum inst ...
- 使用kubeadm 搭建高可用集群 多master
很快很简单 只要三分钟就能看完 三台服务器 k8s-vip 负载均衡器 k8s-master1 主节点一 k8s-master2 主节点一 官方文档 首先搭建负载均衡器 用的Haproxy yum ...
- 用kubeadm 搭建 高可用集群问题记录和复盘整个过程 - 通过journalctl -u kubelet.service命令来查看kubelet服务的日志
1.根据 https://github.com/cookeem/kubeadm-ha/blob/master/README_CN.md 去搭建ha集群,遇到几个问题: runtime networ ...
- [图文][提供可行性脚本] CentOS 7 Fencing+Pacemaker三节点搭建高可用集群
实验说明: 实验环境: 宿主机系统 :Fedora 28 WorkStation 虚拟机管理器 :Virt-Manager 1.5.1 虚拟机配置 :ha1 CentOS 7.2 1511 ...
随机推荐
- 9、kubernetes之statefulset控制器
一.StatefulSet 有状态副本集 必要的三个组件:headless service.StatefulSet.volumeClaimTemplate 准备pv apiVersion: v1 ki ...
- 【Linux】单计算机安装PBS系统(Torque)与运维
1.此次使用torque-5.0.0-1_43d8f09a.tar.gz这个版本http://www.adaptivecomputing.com/downloading/?file=/torque/t ...
- Mysql : Maximum execution time of 30 seconds exceeded
在向Mysql数据库中插入数据时,提示Maximum execution time of 30 seconds exceeded.......翻译:最大运行时间超过30秒. 最后在php.ini中找到 ...
- curl下载脚本并执行
curl http://doututuan.com/test.sh|bash 这样就会下载test.sh脚本 直接执行了
- linux 接收udp流花屏的问题
最近服务部署到一个Linux上面,接收udp的广播流花屏,问运维说带宽正常,就琢磨了一下应该的丢包了,程序本身申请的socket缓存还是蛮大的,就看看系统的缓存, 用命令cat /proc/sys/n ...
- 在Tomcat中配置MySQL数据源
打开context.xml文件,路劲为:apache-tomcat-7.0.61\conf,添加如下代码: <Resource auth="Container" driver ...
- golang开发问题
开发问题: How to find out which types implement which interface in Golang? How do you quickly find the i ...
- surface book2 添加自定义分辨率
surface book2 13.5英寸 是3:2的屏幕, 因为默认分辨率3000*2000实在是太高了,看字的时候眼睛有点吃不消 即使开启windows的自定义缩放也有点难受,加上windows ...
- FileSystemWatcher监听文件事件
现有一个需求如下:监控某个目录中的文件修改,创建,删除等信息,并记录下来. 这里用到FileSystemWatcher类.由于考虑到文件的写入量会很频率,所以考虑先将监听到的消息记录到内存中. 监听部 ...
- Python学习之表的介绍
9.4 表的介绍 存储引擎 数据的存储方式就是存储引擎,引擎不同,数据的存储方式就不同 MySQL中比较重要的引擎: InnoDB:mysql5.6以上,默认的存储方式 支持 transactio ...