redis集群搭建,一主两从三哨兵。

redis集群搭建,一主两从三哨兵的简单搭建过程,

首先准备redis,版本都可以,下载地址:http://redis.io/download

这次所用到的区别在于3.0版本不支持 :protected-mode no。的属性配置,会报错,Invalid argument during startup: unknown conf file parameter : protected-mod

3.2版本以上的可以

下载好windows版本的zip文件后,解压即可,启动redis的默认端口是6379,都可以配置,在redis.windows.conf配置文件下,  linux下的集群与windows相差不多。

介绍

sentinel(哨兵模式)

sentinel,中文名是哨兵。哨兵是 Redis 集群架构中非常重要的一个组件,主要有以下功能:

  • 集群监控:负责监控 redis master 和 slave 进程是否正常工作
  • 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员
  • 故障转移:如果 master node 挂掉了,通过选举从slave node上产生新的master node
  • 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址

哨兵用于实现 redis 集群的高可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作

核心概念

  • 哨兵至少需要 3 个实例,来保证自己的健壮性
  • redis主从+哨兵的模式,不保证数据零丢失的,只能保证redis 集群的高可用性

最后结果

1.复制三个redis.windows.conf文件

其中内容相差不多,在原来的redis.windows.conf下修改端口,

1->6379;

2->6380;

3->6381;

同时添加回环地址,

bind 127.0.0.1

3.2版本以上的可以添加  protected-mode no  。

在port=6380,6381的两个从服务器下的配置文件添加,

slaveof 127.0.0.1 6379

代表这两个redis服务器为从服务器。

2.配置三个sentinel.conf,代表三个哨兵服务器

复制下方配置文件即可,三个哨兵服务器的port依次是

1->26379;

2->26380;

3->26381;

# 当前Sentinel服务运行的端口
port 26379
# 保护模式 no
# protected-mode no

# Sentinel去监视一个名为mymaster的主redis实例,
# 这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,
# 而将这个主实例判断为失效至少需要2个Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行

# down-after-milliseconds指定了Sentinel认为Redis实例已经失效所需的毫秒数。
# 当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
# 只有一个Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线。
# 这时自动故障迁移才会执行

# parallel-syncs指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,
# 在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel monitor mymaster 127.0.0.1 6379 2

# 如果在failover-timeout该时间(ms)内未能完成failover操作,则认为该failover失败
sentinel down-after-milliseconds mymaster 5000

3.增加一个批量启动服务节点的bat文件

增加启动服务的配置,start.bat。

复制下发内容,修改redis服务器本地路径,以及配置文件名称。保存

@echo off
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe redis.windows1.conf"
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe redis.windows2.conf"
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe redis.windows3.conf"
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe sentinel1.conf --sentinel"
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe sentinel2.conf --sentinel"
start cmd /k "cd/d D:\software\redis\redis-64.3.0.503&&redis-server.exe sentinel3.conf --sentinel"

双击start.bat。服务启动。

4.查看服务状态

启动redis客户端,

.\redis-cli.exe

查看状集群情况

info replication

由图中可以看到,6379节点权限为master节点, 两个从属节点6380,6381.

5.查看缓存同步情况

打开redis客户端软件,查看存在的原来的状态。

在6379服务器上设置值,

127.0.0.1:6379> set b 2
OK
127.0.0.1:6379>

查看到6379的端口给出反馈, 已经成功同步到从属服务器上,

且查看到 6380端口同步到了6379设置的值。到此,就完成了一部分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值