天天看点

Redis开发运维实践高可用和集群架构与实践(二)11.1.2 环境搭建11.1.2.1 部署架构11.1.2.2 网络规划11.1.2.3 用户规划11.1.2.4 持久化规划11.1.2.5 目录规划11.1.2.6 部署步骤11.1.2.7 配置文件

部署架构上采用三台机器,一个master接受写请求,两个slave进行数据同步,三台机器上都部署sentinel(一般为奇数个,因为需要绝大部分进行投票才能failover)。(官方示例)具体架构如下图:

Redis开发运维实践高可用和集群架构与实践(二)11.1.2 环境搭建11.1.2.1 部署架构11.1.2.2 网络规划11.1.2.3 用户规划11.1.2.4 持久化规划11.1.2.5 目录规划11.1.2.6 部署步骤11.1.2.7 配置文件

注意:如果有条件可以将sentinel多部署几个在客户端所在的应用服务器上,而不是与从节点部署在一起,这样避免整机宕机后sentinel和slave都减少而导致的切换选举sentinel无法超过半数。

redis高可用环境不需要进行心跳线的配置,每个物理节点的网卡进行双网卡主备绑定生成bond0即可。

用户名

用户所在组

用户目录

权限

备注

redis(10086)

redis (10086)

/redis

sudo(如需要浮动ip时赋予)

--

如果读多写少,可以在master上只开启aof,在低峰期定时进行bgsave,在slave上彻底关闭持久化。 如果读写差不多,可以在一个slave上开启rdb(这个slave只做持久化,不进行读操作),在其余主从都关闭持久化。 注意:从节点是不会从本地恢复而直接从master节点进行恢复的,因此在重启前如果有需要备份从节点,则需要把aof和rdb文件移走。

目录

含义

/redis/bin

redis可执行文件

/redis/conf

redis 和supervisord的配置文件

/redis/run

redis和supervisord运行时的pid文件

/redis/log

redis和supervisord的日志

/redis/script

一些管理脚本和测试脚本

/redis/data

redis持久化数据目录

解压下列压缩包至/tmp/redis目录,以符合上述目录结构:

部署相关组件: cd /tmp/redis/deploy ./deploy.sh

修改master配置文件redis.conf,注释掉包含slaveof的语句。 修改slave配置文件redis.conf,添加slaveof masterip port,指定主从 修改三台机器的sentinel配置文件,指定主服务器的ip和端口: sentinel monitor mymaster masterip port 2

然后使用supervisord重新启动。

首先,一个sentinel可以配置多个master。一个master的配置如下:

<b>本文为《redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。</b>

继续阅读