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为解压的源码包

修改如下配置:

 1 daemonize yes                           //redis后台运行
 2 port 7001                    (分别对每个机器的端口号进行设置)
 3 pidfile  /var/run/redis_7001.pid         //pidfile文件对应7000,7002,7003...7006
 4 cluster-enabled  yes                     //开启集群  把注释#去掉
 5 cluster-config-file  nodes-7001.conf     //集群的配置  配置文件首次启动自动生成 7001,7002,7003...7006
 6 cluster-node-timeout  5000             //请求超时  设置5秒够了
 7 appendonly  yes        //aof日志开启      有需要就开启,它会每次写操作都记录一条日志
 8 bind 127.0.0.1                (去掉bind绑定访问ip信息)
 9 protected-mode no               (关闭保护模式)
10 #dir /usr/local/redis/redis-cluster/7001/ (指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,若该配置 不存在,请自行添加)

如果要设置密码需要增加如下配置:

11 requirepass xxx (设置redis访问密码)
12 masterauth xxx (设置集群节点间访问密码,跟上面一致)

第三步:把修改后的配置文件,copy到8002-8006,修改第2、3、5项里的端口号,可以用批量替换:

先复制:

1 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7002
2 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7003
3 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7004
4 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7005
5 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实例,然后检查是否启动成功

1 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7001/redis.conf
2 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7002/redis.conf
3 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7003/redis.conf
4 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7004/redis.conf
5 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7005/redis.conf
6 /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 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

说明:redis 5.x的集群创建不需要ruby环境了 

    --cluster-replicas 1 命令的意思是创建master的时候同时创建一个slave

会创建一个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 -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 提供了关闭集群的工具)

在这里非常感谢以上作者的劳动果实。

原文地址:https://www.cnblogs.com/116970u/p/11122331.html

时间: 2024-08-04 01:23:11

Redis5以上版本伪集群搭建(高可用集群模式)的相关文章

CentOS 7下搭建高可用集群

一 .安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件. 二.配置防火墙1.禁止防火墙和selinux# systemctl disable firewalld# systemctl stop firewalld2.设置防火墙规则# firewall-cmd --permanent --add-service=high-availability# firewall-cmd --add-service=h

Mongodb3.4.7搭建高可用集群(二)

部署Mongodb高可用集群 准备 按照官方说明,至少需要3个config server,2个mongos,2个shard,每个shard至少2个副本,就是4个shard,共需要9个Mongodb实例.这里只虚拟出2个机器节点,将不同的Mongodb实例部署在不同的端口上模拟实现. 节点端口关系表 config server leo.zhi.1:10010,leo.zhi.2:10010 mongos server leo.zhi.1:10020,leo.zhi.2:10020 shard se

Linux集群系列——高可用集群之corosync基础概念及安装配置.

高可用衡量标准 :corosync : 集群管理引擎 SA Forum -->OpenAIS-->Wilson-->corosync 向后延伸为衍生出来的版本REHL 6.x RHCS :corosyncREHL 5.x RHCS :OpenAIS , cman ,rgmanager corosync : Messaging Layer 需要CRM (+ pacemaker)SUSE Linux Enterprise server Hawk WEB GUILCMC : Linux Clu

Nginx提供代理服务(网站代理),nginx实现负载均衡集群和高可用集群、nginx实现网站动静页面分离

静态页面:用静态编程语言编写的页面为静态页面,支持静态页面的语言为,css html  xml,不手动改变源代码,页面就不会改变. 动态页面:用动态编程语言编写的页面为动态页面,支持动态页面的语言有,java php .net,根据用户访问的时间和用户的不同显示不同的页面. nginx网站服务代理 实验(一)实验目的:nginx实现反向代理代替公网用户访问私网的web页面. 实验环境: 内网web服务器: IP地址 :192.168.1.1  主机名:fanlj nginx代理服务器:IP地址:

ActiveMQ+ZooKeeper搭建高可用集群

一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper的应用程序协调服务和levelDB的持久化方案. 本文中,基于一个系统环境,搭建伪集群模式,通过不同端口的配置,达到集群安装的效果. 基本环境:jdk-7u80-linux-x64.tar.gz.Centos 6.9.zookeeper-3.4.12.tar.gz.apache-activemq-5

Mongodb3.4.7搭建高可用集群(一)

简介 Sharding(分片)是一种将数据划分为多个分片,然后分布在多个机器节点上的解决方案,Mongodb使用sharding支撑其庞大的数据存储以及高效的数据访问. 单个节点上的数据库系统要存储大容量的数据,同时满足高效率的数据访问,对其来说是一个很大的挑战.没准,我们执行一次查询,CPU就挂掉了,就算不挂,查询出来的数据内存根本放不下. 面对这种情况,有2种方式可以解决系统的瓶颈:纵向增强自身.横向扩展节点. 纵向增强自身意味着要升级为更强悍的CPU,扩展更大的内存容量和硬盘容量,但受制于

实验-CentOS 使用Keepalived搭建高可用集群

配置keepalivedHa集群 一)实验环境: 服务器系统:CentOS7.3 服务:nginx,keepalived 客户端系统:Windows 10,CentOS7.3 二)初始化操作:Master/Backup,童颜的操作 #安装keepalived软件 [[email protected] ~ ]# yum install keepalived #安装Nginx(需要配置EPEL源) [[email protected] ~ ]# yum install Nginx #关闭清空防火墙

搭建PXC集群------mysql高可用集群

部署环境: CentOS7.X 1.关闭selinux   vi /etc/selinux/config SELINUX=disabled #修改该项为disabled 立即生效setenforce 0 2.查看防火墙是否开启     systemctl status firewalld 如果防火墙是开启状态,则开放端口 3306 .4444.4567.4568 firewall-cmd --add-port=3306/tcp --permanent     #开放了3306端口 开放完4个端口

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装环境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2 提供两台机器node1和node2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样. #   IP                         HOSTNAME             ALIAS 10.204.80.79     node1.mylinux.com     node1 10.204.80.80  

Windows 2012 系统搭建高可用故障转移集群

Windows 2012 系统搭建高可用故障转移集群 一.故障转移集群介绍 2 1.1 系统介绍 2 1.2 工作原理 2 二.实验目的 2 2.1 验证故障转移功能 2 2.2 验证高可用集群的可用性,以及支持的服务类型 2 三.实验原理 3 3.1 实验拓扑 3 3.2 实验环境设备 3 四.配置步骤 4 4.1 配置域服务器 4 4.2  iSCSI 虚拟存储配置 18 4.3 配置故障转移集群服务 45 4.4  验证集群 63 五.实验结果验证 68 5.1  验证故障转移 68 5.