大数据,机器学习,人工智能知识共享大数据

Sentinel版Redis集群搭建

2019-03-23  本文已影响2人  老老戟
图片.png 图片.png

部署Redis数据节点

1.启动主节点

配置:
redis-6379.conf
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/opt/soft/redis/data/"

启动主节点:
redis-server redis-6379.conf

认是否启动。一般来说只需要ping命令检测一下就可以,确认Redis数
据节点是否已经启动。
$ redis-cli -h 127.0.0.1 -p 6379 ping
PONG

2.启动两个从节点

配置:
两个从节点的配置是完全一样的,下面以一个从节点为例子进行说明,
和主节点的配置不一样的是添加了slaveof配置。

redis-6380.conf
port 6380
daemonize yes
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/opt/soft/redis/data/"
slaveof 127.0.0.1 6379

启动两个从节点:

redis-server redis-6380.conf
redis-server redis-6381.conf

验证:
redis-cli -h 127.0.0.1 -p 6380 ping PONG redis-cli -h 127.0.0.1 -p 6381 ping
PONG

3.确认主从关系

主节点的视角,它有两个从节点,分别是127.0.0.1:6380和127.0.0.1:6381

$ redis-cli -h 127.0.0.1 -p 6379 info replication

Replication

role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=281,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=281,lag=0

从节点的视角,它的主节点是127.0.0.1:6379

$ redis-cli -h 127.0.0.1 -p 6380 info replication

Replication

role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up

部署Sentinel节点

3个Sentinel节点的部署方法是完全一致的(端口不同),下面以
sentinel-1节点的部署为例子进行说明。

1.配置Sentinel节点

redis-sentinel-26379.conf
port 26379
daemonize yes
logfile "26379.log"
dir /opt/soft/redis/data
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

1)Sentinel节点的默认端口是26379。
2)sentinel monitor mymaster127.0.0.1 6379 2配置代表sentinel-1节点需要监
控127.0.0.1:6379这个主节点,2代表判断主节点失败至少需要2个Sentinel节
点同意,mymaster是主节点的别名,其余Sentinel配置将在下一节进行详细说
明。

2.启动Sentinel节点

Sentinel节点的启动方法有两种:

方法一,使用redis-sentinel命令:
redis-sentinel redis-sentinel-26379.conf

方法二,使用redis-server命令加--sentinel参数:

redis-server redis-sentinel-26379.conf --sentinel
两种方法本质上是一样的。

3.确认

Sentinel节点本质上是一个特殊的Redis节点,所以也可以通过info命令
来查询它的相关信息,从下面info的Sentinel片段来看,Sentinel节点找到了主
节点127.0.0.1:6379,发现了它的两个从节点,同时发现Redis Sentinel一共
有3个Sentinel节点。这里只需要了解Sentinel节点能够彼此感知到对方,同时
能够感知到Redis数据节点就可以了:

$ redis-cli -h 127.0.0.1 -p 26379 info Sentinel

Sentinel

sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
当三个Sentinel节点都启动后,整个拓扑结构如图9-16所示。

至此Redis Sentinel已经搭建起来了,整体上还是比较容易的,但是有2
点需要强调一下:
1)生产环境中建议Redis Sentinel的所有节点应该分布在不同的物理机
上。
2)Redis Sentinel中的数据节点和普通的Redis数据节点在配置上没有任
何区别,只不过是添加了一些Sentinel节点对它们进行监控。

图片.png
上一篇 下一篇

猜你喜欢

热点阅读