您的位置:首页 > 数据库 > Redis

Redis集群 - redis主从配置初步:主从从配置、哨兵配置

2017-04-18 11:00 1066 查看
我们前面学习了简单的redis主从配置(结合稍兵),其实在我们的实际开发中要真正的达到“高可用”,”稍兵”还会部署多个,通过配置多个稍兵同时产生警报,那么我们再进行主从的切换。



前面我们配置了一个主机一个从机(用端口区分6379、6380),我们这里先再配置一个从机:

可能需要参考redis集群第一篇的配置。

6379
是主机,
6380
是从机,我们先拷贝一份配置文件:

cp 6380.conf  6381.conf


显示我们准备把
6381
也作为从机,下面修改
6381.conf
几个配置项:

port 6380
修改为:
port 6381

pidfile /usr/local/redis/redis_6380.pid
修改为:
pidfile /usr/local/redis/redis_6381.pid

增加一行:
slaveof 127.0.0.1 6379


启动这3个redis实例(redis服务),并且启动稍兵(redis-sentinel服务):

/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6380.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6381.conf
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf




客户端链接主机(6379这台):

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379


查看主机信息,输入
info
命令:



角色是
master
,链接了2个
slave
,分别是
slave0和slave1


这样就配置好了“一主两从“。

今天我们要学的是主从从

如果让所有的slave节点数据的复制和同步都是由master节点来处理,会造成master节点压力太大。

所以我们今天要学习如下图的架构:



在开始之前,我们需要重新调整一下redis的配置文件

修改dbfilename(生成的数据库文件名)

dbfilename “dump端口.rdb”

还需要修改dir(本地数据库目录)

dir “/usr/local/redis/datadir” (别忘了创建这个datadir文件夹,并且要主要权限哦)

我们这里演示一下
6379.conf
文件要怎么修改:



其他2个配置文件
6380.conf和6381.conf
同理修改。

修改了3个配置文件之后,重启服务:

pkill redis
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf /usr/local/redis/bin/redis-server /usr/local/redis/conf/6380.conf /usr/local/redis/bin/redis-server /usr/local/redis/conf/6381.conf /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf


然后我们就可以在
datadir
目录发现点儿什么了:

cd /usr/local/redis/datadir/




好,然后回到我们的终点“主从从配置”。

修改我们的
6381
,它原本是隶属于
6379
的(
6380
也隶属于
6379
)。

我们现在要做的是:让
6380
隶属于
6379
6381
隶属于
6380


关于哨兵配置

哨兵启动后起身自动修改配置文件(一般建议不要手动修改)

比如出现:

sentinel known-slave mymaster 127.0.0.1 6380

“known-slave”代表已知的从机。如果之前配的是一主多从,那么这里面会有这行配置。如果我们要配置“主从从”,那么要把多余的从(配置行)手工删掉。

其他一些配置:

sentinel leader-epoch mymaster 2

(同时一时间最多3个slave可同时更新配置)

打开我们的稍兵配置文件
vi sentinel.conf
来看一看:



因为我们现在是要配置“主从从”,是要6381隶属于6380,所以我们现在要把6381这行手工删掉。



好了,现在我们的稍兵只监听着6379,并且6379的从机只有6380。

然后我们修改6381的配置,让它隶属于6380:

vi 6381.conf


修改内容如下:

slaveof 127.0.0.1 6379
修改为:
slaveof 127.0.0.1 6380 #成为6380的从机


修改完配置,必须要重启服务:

pkill redis
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf /usr/local/redis/bin/redis-server /usr/local/redis/conf/6380.conf /usr/local/redis/bin/redis-server /usr/local/redis/conf/6381.conf /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf


此时,我们在客户端链接上主机(6379是我们的主机):

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379


同样链接上后输入
info
命令查看:



此时我们发现6379这个主机,只有1个从机6380了。

我们在链接上6380看看:

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6380




这样我们就配置好了redis的“主从从”:6379是主机,6380岁隶属于6379的从机,6381是隶属于6380的从机。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: