首页 > 数据库 >Redis三主三从集群

Redis三主三从集群

时间:2023-04-07 13:23:45浏览次数:55  
标签:Redis 三主三 redis cluster 集群 7000 10.210 data

Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。
一组Redis Cluster是由多个Redis实例组成,官方推荐使用6实例,其中3个为主节点,3个为从节点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从节点成为新的主节点,继续对外服务,从而保证服务的高可用性。
\color{red}{注意:当集群内一个master以及其对应的slave同时宕机,集群将无法提供服务}
\color{red}{注意:当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。}

 

部署环境:

 

IP地址端口角色Redis版本
10.210.21.141 7000 redis-master 5.0.8
10.210.21.141 7001 redis-slave 5.0.8
10.210.21.142 7000 redis-master 5.0.8
10.210.21.142 7001 redis-slave 5.0.8
10.210.21.143 7000 redis-master 5.0.8
10.210.21.143 7001 redis-slave 5.0.8

1.安装Redis

1、安装C/C++环境
Redis编译时需要使用C/C++环境:
yum install -y gcc gcc-c++ make

2、下载Redis安装包
下载地址:http://download.redis.io/releases/
cd /data
wget http://download.redis.io/releases/redis-5.0.8.tar.gz

3、解压、编译
tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make

4、创建Redis相关工作目录(目录可自定义)
mkdir /data/redis-cluster/{data/{redis_7000,redis_7001},conf,log} -p

5、复制redis配置文件
cd redis-5.0.8
cp redis.conf /data/redis-cluster/conf/redis_7000.conf
cp redis.conf /data/redis-cluster/conf/redis_7001.conf

2.修改Redis配置文件

1、修改redis-master配置文件
vi /data/redis-cluster/conf/redis_7000.conf

port 7000             #修改redis监听端口(可以自定义)
bind 0.0.0.0            #表示redis允许所有地址连接。默认127.0.0.1,仅允许本地连接。
daemonize yes             #允许redis后台运行
pidfile /var/run/redis_7000.pid     #pid存放目录
logfile "/var/log/redis-sentinel.log"   #设置Sentinel日志存放路径
dir /data/redis-cluster/data/redis_7000  #工作目录
cluster-enabled yes     #是否开启集群
cluster-config-file /data/redis-cluster/conf/nodes_7000.conf
#集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息
#这个文件并不需要手动配置,这个配置文件有Redis生成并更新,
cluster-node-timeout 15000
#节点互连超时的阀值。集群节点超时毫秒数,默认15秒
appendonly yes
#Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件, 
#每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。
requirepass 123456    #设置redis密码
masterauth 123456    #主从同步master的密码(如果没有设置redis密码,则无需配置)

2、修改redis-slave配置文件
vi /data/redis-cluster/conf/redis_7001.conf #修改redis-slave配置文件,具体如下:

port 7001
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-cluster/redis_7001.pid
logfile "/data/redis-cluster/log/redis_7001.log"
dir /data/redis-cluster/data/redis_7001
cluster-enabled yes
cluster-config-file /data/redis-cluster/conf/nodes_7001.conf 
cluster-node-timeout 15000
appendonly yes
requirepass 123456
masterauth 123456

3.分发到集群其他服务器

复制redis以及工作目录到其他服务器
scp -r redis-5.0.8 redis-cluster [email protected]:/data
scp -r redis-5.0.8 redis-cluster [email protected]:/data

设置软链接,方便启动redis服务
ln -s /data/redis-5.0.8/src/redis-server /usr/bin/redis-server
ln -s /data/redis-5.0.8/src/redis-cli /usr/bin/redis-cli

4.启动Redis

集群内每台服务器分别启动两个redis
redis-server /data/redis-cluster/conf/redis_7000.conf
redis-server /data/redis-cluster/conf/redis_7001.conf
验证是否启动成功
ps -ef | grep redis
查看版本
redis-cli --version
redis-server --version

5.创建Redis Cluster

注意:redis5.0以上集群创建方式改为了C编写的redis-cli创建,不用再安装麻烦的ruby。
创建集群,--cluster-replicas 1指定从库数量1,创建顺序三主-三从。即主-主-主-从-从-从。
如果redis设置了密码,则创建集群时需要添加密码信息 -a 密码:
redis-cli -a 123456 --cluster create 10.210.21.141:7000 10.210.21.142:7000 10.210.21.143:7000 10.210.21.141:7001 10.210.21.142:7001 10.210.21.143:7001 --cluster-replicas 1

 


确认集群配置信息,确认无误则输入 yes 并按回车

 

出现以上信息,表示集群配置成功。

6验证集群Redis-Cluster

1、登录redis集群
redis-cli -a 123456 -h 10.210.21.141 -p 7000 -c
-a Redis密码,-c表示集群模式 ,指定IP和端口
注意:可能会redirected进入到其它server

2、验证集群信息
10.210.21.141:7000> cluster info #查看集群信息

 

 

10.210.21.141:7000> cluster nodes #查看集群节点列表


 

查看集群内主从关系:
redis-cli -a 123456 -h 10.210.21.141 -p 7000 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq

3、进行数据验证操作
插入数据:
10.210.21.141:7000> set mykey "Hello Redis"
10.210.21.143:7000> get mykey
登录其他节点查看数据:
redis-cli -a 123456 -h 10.210.21.142 -p 7000 -c
10.210.21.142:7000> get mykey

4、验证集群故障转移
将其中一个redis-master停止掉后、其对应的slave节点会被选举为master节点,旧master节点重新恢复时,其角色会成为slave。具体可自行验证,验证时可开启日志查看相关信息。

标签:Redis,三主三,redis,cluster,集群,7000,10.210,data
From: https://www.cnblogs.com/cuijinlong/p/17295833.html

相关文章

  • GaussDB(DWS)集群中寻找节点CPU占用高的语句
    摘要:本文主要通过实例讲解如何通过gs_cpuwatcher.sh脚本寻找CPU占用高语句。本文分享自华为云社区《GaussDB(DWS)gs_cpuwatcher.sh脚本如何寻找CPU占用高语句》,作者:fighttingman。【工具名称】gs_cpuwatcher【功能描述】1.寻找集群内节点占用CPU高的语句【使用场景】CPUsys使用......
  • Redis-基础(逐步完善)
    Redis持久化RDB/AOF命令RDB(dump.rdb文件)适用于大规模数据恢复,且对数据完整性和一致性不高的情况把当前进程数据生成快照保存到硬盘的过程RDB文件的处理保存位置:dbfilename压缩:rdbcompression,默认开启LZF压缩,会消耗CPU校验:rdbchecksum,使用CRC64算法校验RDB持久化触发方式......
  • GaussDB(DWS)集群中寻找节点CPU占用高的语句
    摘要:本文主要通过实例讲解如何通过gs_cpuwatcher.sh脚本寻找CPU占用高语句。本文分享自华为云社区《GaussDB(DWS)gs_cpuwatcher.sh脚本如何寻找CPU占用高语句》,作者:fighttingman。【工具名称】gs_cpuwatcher【功能描述】1.寻找集群内节点占用CPU高的语句【使用场景】CP......
  • K8S 高可用外部 etcd , Docker 容器运行时 (三) 加入K8S集群
    control-plane上执行1、#证如果过期了,可以使用下面命令生成新证书上传,这里会打印出certificatekey,后面会用到kubeadminitphaseupload-certs--upload-certs#你还可以在【init】期间指定自定义的--certificate-key,以后可以由join使用。要生成这样的密钥,可以使用以下......
  • Redis 持久化机制
    目录Redis数据持久化RDB(RedisDatabase)触发快照的时机AOF(AppendOnlyFile)AOF日志写入过程AOF重写机制AOF重写写时复制AOF重写缓冲区子进程重写的优点总结RDB+AOF组合Redis数据持久化Redis提供了四种持久化策略:RDB(RedisDatabase)、AOF、RDB+AOF和不持久化。RDB......
  • Spring Cache使用方式——不用默认,使用redis进行缓存
    在SpringBoot项目中使用SpringCache的操作步骤(使用redis缓存技术)1、导入Maven坐标spring-boot-starter-data-redis、sping-boot-starter-cache2、配置application.ymlspring:cache:redis:time-to-live:1800000#设置缓存......
  • MATLAB代码:分布式最优潮流 含分布式光伏的配电网集群划分和集群电压协调控制
    MATLAB代码:分布式最优潮流关键词:网络划分;分布式光伏;集群电压控制;分布式优化;有功缩减参考文档:《含分布式光伏的配电网集群划分和集群电压协调控制》仿真平台:MATLAB主要内容:本文以全局电压的低成本快速控制为目标,提出基于电气距离和区域电压调节能力的集群综合性能指标和网络划......
  • redis基础数据结构详解
    一.redis为什么快基于内存的存储虽然是单线程,但是采取了多路复用,可以高效的处理网络并发良好的数据结构设计二.redis基础数据结构redis有五种基础的数据结构string,list,set,zset,hashredis所有的数据结构的key都是string类型,我们所说的数据结构都是指value的数据结构......
  • 11-springcloud-eureka-7-Eureka 注册中心高可用集群
    在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性问题,不能有单点故障,由于注册中心eureka本身也是一个服务,如果它只有一个节点,那么它有可能发生故障,这样我们就不能注册与查询服务了,所以我们需要一个高可用的服务注册中心,这就需要通过注册中心集群来解决。......
  • 通过 Homebrew 在 Mac OS X 上安装和配置 Redis
    通过使用Homebrew,可以大大降低在MacOSX上设置和配置开发环境的成本。让我们安装Redis。$brewinstallredis安装后,我们将看到一些有关配置注意事项的通知。离开它并继续关注本文中的一些任务。开机自启动Redis$ln-sfv/usr/local/Cellar/redis/7.0.10/*.plist......