sentinel-redis 使用总结

Redis-Sentinel是Redis官方提供的集群管理工具当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自懂切换,将slave提升为master,并在老的master重新加入到sentinel的群集之后,会被重新配置,作为新master的slave。

 

它的主要功能有以下几点

1.不时地监控redis是否按照预期良好地运行

2.如果发现某个redis节点运行出现状况,能够通知另外一个进程

3.能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它的master的地址改为被新master的slave的地址。

 准备工作:

Redis配置

===============================================================================

#是否作为守护进程运行

daemonize no

#Redis 默认监听端口

port 9001

#客户端闲置多少秒后,断开连接

timeout 300

#日志显示级别

loglevel verbose

#指定日志输出的文件名,也可指定到标准输出端口

logfile redis.log

#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N来连接不同的数据库

databases 32

#Dump持久化策略

#当有一条Keys数据被改变是,900秒刷新到disk一次

#save 900 1

#当有10Keys数据被改变时,300秒刷新到disk一次

save 300 100

#当有1wkeys数据被改变时,60秒刷新到disk一次

save 6000 10000

#dump     .rdb数据库的时候是否压缩数据对象

rdbcompression yes

#dump 持久化数据保存的文件名

dbfilename dump.rdb

 

###########    Replication #####################

#Redis的主从配置,配置slaveof则实例作为从服务器

#slaveof 192.168.0.105 6379

#主服务器连接密码

# masterauth <master-password>

############## 安全性 ###########

#设置连接密码

#requirepass <password>

############### LIMITS ##############

#最大客户端连接数

# maxclients 128

#最大内存使用率

# maxmemory <bytes>

########## APPEND ONLY MODE #########

#是否开启日志功能

appendonly no

# AOF持久化策略

#appendfsync always

#appendfsync everysec

#appendfsync no

################ VIRTUAL MEMORY ###########

#是否开启VM功能

#vm-enabled no

# vm-enabled yes

#vm-swap-file logs/redis.swap

#vm-max-memory 0

#vm-page-size 32

#vm-pages 134217728

#vm-max-threads 4

 

===============================================================================

 

Redis命令

1.进入redis安装目录

cd redisCluster\redis

2.启动redis服务,输入

redis-server.exe redis.windows7000.conf

3,查看从状态

redis-cli -h 127.0.0.1 -p 7000 info Replication

4.链接指定客户端

redis-cli -h 127.0.0.1 –p 7000

备注:配置主从

主默认,从配置 slaveof 127.0.0.1 7000

Sentienl配置

===============================================================================

##sentinel实例之间的通讯端口

port 27000

####sentinel需要监控的master信息:<mastername> <masterIP> <masterPort> <quorum>.

####<quorum>应该小于集群中slave的个数,只有当至少<quorum>sentinel实例提交"master失效"才会认为masterODWON("客观"失效) .

sentinel monitor mymaster 127.0.0.1 7000 1

####授权密码,在安全的环境中可以不设置

#sentinel auth-pass mymaster luyx30

####master被当前sentinel实例认定为“失效”(SDOWN)的间隔时间

sentinel down-after-milliseconds mymaster 30000

####当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数。

##salve执行salveof与同步时,将会终止客户端请求。

##此值较大,意味着“集群”终止客户端请求的时间总和和较大。

##此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。

sentinel parallel-syncs mymaster 1

####failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。

sentinel failover-timeout mymaster 900000

===============================================================================

 

Sentinel命令

1.进入redis安装目录

cd redisCluster\redis

2.启动sentinel服务,输入

redis-cli sentinel.conf

 

Sentinel集群处理Master Redis实例挂掉的基本流程:

1)每个Sentinel实例通过监控发现6379端口的Master Redis实例不工作,于是将该实例的状态设置为sdown

2)通过Sentinel彼此之间通信确认大多数Sentinel实例均认为Master Redis挂掉,于是将该实例的状态设置为odown

3)准备触发Master Redis实例的failover,要选举一个Sentinel实例进行首次failover操作;4)选举出来的Sentinel实例从Slave Redis实例中选择一个出来成为新的Master Redis实例;5)完成Master Redis实例的切换之后,在各个Sentinel实例间同步最新的配置信息;

6)让落选的Slave Redis实例切换到新的Master Redis实例,开始同步数据。

 

以上为sentinel-redis集群环境搭建,下面我们学习如何在开发中操作Redis的Sentinel,进行对缓存的操作。假设已经安装完成了Redis服务,并成功运行。

 

使用Spring-data-redis操作RedisSentinel,依赖包主要有jedis 2.8.1.jar spring-data-redis.1.6.2.RELEASE

具体可参考 http://blog.csdn.net/roguestudys/article/details/51879140 

 

 

 

注意

1)在配置Redissentinel.conf文件时注意使用外部可以访问的ip地址,因为当redis-sentinel服务和redis-server在同一台机器的时候,主服务发生变化时配置文件中将主服务ip变为127.0.0.1,这样外部就无法访问了。

2)发生master迁移后,如果遇到运维需要,想重启所有redis,必须最先重启新的”master节点,否则sentinel会一直找不到master

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值