Sentinel(哨兵)用于监控redis集群中Master状态,自动对主从进行检测,当master有问题后,将会自动切换从节点为主。
适用于小内存,写始终在单台,性能有局限性,更高需求可选择集群。
10.0.0.1 master+sentinel
10.0.0.2 slave+sentinel
10.0.0.3 slave+sentinel
1 安装
tar -zxvf redis-3.2.11.tar.gz
mv redis-3.2.11 /usr/local/redis
cd /usr/local/redis
make
make install
2 配置主备
在程序根目录创建专门的配置目录conf,数据目录data,日志目录logs
mkdir data
mkdir logs
mkdir conf
cp redis.conf conf/
cp sentinel.conf conf/
redis.conf主要配置内容如下(其他保持默认即可):
port 6379
bind 10.0.0.1 127.0.0.1 #网卡ip放127前,否则集群无法互相连通
daemonize yes #后台启动
requirepass 123456 #配置redis Slave密码为123456
masterauth 123456 #由于slave需和master交互
#pidfile /var/run/redis/redis-server.pid #redis的进程文件
# 客户端空闲超过timeout,服务端会断开连接,为0服务端不主动断开连接
timeout 300
#对tcp连接进行检测,单位秒。如设置0则不检测。检测可以防止客户端僵死,从而占用一个连接。
tcp-keepalive 60
loglevel notice
logfile ./logs/redis-server-6379.log
dbfilename dump-6379.rdb
dir ./data #数据目录
#用select 1/2/3切换到不同库,相当于mysql中的数据库实例,一个应用可以一个库,清理当前数据不会影响到其他库。
databases 16
# 快照配置持久化配置
# 注释掉“save”这一行配置项就可以让保存数据库功能失效
# 900秒(15分钟)内至少1个key值改变则进行数据持久化
save 900 1
# 300秒(5分钟)内至少10个key值改变则进行数据持久化
save 300 10
# 60秒(1分钟)内至少10000个key值改变则进行数据持久化
save 60 10000
#当master挂,根据优先级选举一个master。最低的优先级的slave,当选master。而配置成0,永远不会被选举。
slave-priority 100
maxclients 10000 #默认是10000
appendonly no
#aof文件名
appendfilename "appendonly.aof"
备机的redis.conf只需在上面配置中增加一行语句
slaveof 1.0.0.1 6379
同时修改下bind后边的主机IP
启动命令:src/redis-server redis.conf
查看状态:src/redis-cli -p 6379 -a 123456 info
控制台执行slaveof 1.0.0.1 6379
特点:
在当前slave掉线后,再启动会从服务器会读取自己本地的 rdb恢复数据,而不会去自动链接主服务。
3 哨兵配置
sentinel.conf配置如下:
#开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码 和bind,可以开启。否 则最好关闭,设置为no
protected-mode no
port 26379
daemonize yes
sentinel auth-pass mymaster 123456 #密码验证
logfile "./logs/redis-26379.log"
dir './data'
sentinel monitor mymaster 10.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 18000
sentinel parallel-syncs mymaster 1 #?
启动命令:src/redis-sentinel sentinel.conf
查看状态:src/redis-cli -p 26379 info
网友评论