Redis 主从复制

Redis 支持简单且易用的主从复制master-slave replication功能 该功能可以让从服务器(slave server)成为主服务器(master

server)的精确复制品

以下是关于 Redis 复制功能的几个重要方面

  • Redis 使用异步复制。 从 Redis 2.8 开始 从服务器会以每秒一次的频率向主服务器报告复制流replication stream的处理进度。
  • 一个主服务器可以有多个从服务器。
  • 不仅主服务器可以有从服务器,从服务器也可以有自己的从服务器多个从服务器之间可以构成一个图状结构。
  • 复制功能不会阻塞主服务器 即使有一个或多个从服务器正在进行初次 同步 主服务器也可以继续处理命令请求。
  • 复制功能也不会阻塞从服务器 只要在 redis.conf 文件中进行了相应的设置 即使从服务器正在进行初次同步 服务器也可以使用旧版本 的数据集来处理命令查询。不过, 在从服务器删除旧版本数据集并载入新版本数据集的那段时间 内,连接请求会被阻塞。你还可以配置从服务器 让它在与主服务器之间的连接断开时,向客户端发送一个错误。复制功能可以单纯地用于数据冗余data redundancy), 也可以通过 让多个从服务器处理只读命令请求来提升扩展性scalability),比如 说 繁重的 SORT 命令可以交给附属节点去运行。

从服务器配置

配置一个从服务器非常简单, 只要在配置文件中增加以下的这一行就可以了:

slaveof 192.168.1.1 6379

另外一种方法是调用 SLAVEOF 命令,输入主服务器的 IP 和端口,然后同步就会开始

 

127.0.0.1:6379> SLAVEOF 192.168.1.1 10086

只读从服务器

从Redis 2.6 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。

  • 只读模式由 redis.conf 文件中的 slave-read-only 选项控制 也可以通 过 CONFIG SET 命令来开启或关闭这个模式。
  • 只读从服务器会拒绝执行任何写命令 所以不会出现因为操作失误而将 数据不小心写入到了从服务器的情况。
  • 另外对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从 属服务器关闭复制功能并从从属服务器转变回主服务器原来同步所 得的数据集不会被丢弃。
  • 利用【SLAVEOF NO ONE 不会丢弃同步所得数据集】这个特性,可 以在主服务器失败的时候将从属服务器用作新的主服务器从而实现 无间断运行。

从服务器相关配置

如果主服务器通过 requirepass 选项设置了密码, 那么为了让从服务器的 同步操作可以顺利进行, 我们也必须为从服务器进行相应的身份验证设置。

对于一个正在运行的服务器, 可以使用客户端输入以下命令:

config set masterauth <password>

要永久地设置这个密码, 那么可以将它加入到配置文件中:

masterauth <password>

主服务器只在有至少 N 个从服务器的情况下,才执行写操作

从 Redis 2.8 开始, 为了保证数据的安全性,可以通过配置, 让主服务 器只在有至少 N 个当前已连接从服务器的情况下, 才执行写命令。不过, 因为 Redis 使用异步复制, 所以主服务器发送的写数据并不一定会被从服务器接收到, 因此, 数据丢失的可能性仍然是存在的。

以下是这个特性的运作原理:

  • 从服务器以每秒一次的频率 PING 主服务器一次 并报告复制流的处 理情况。
  • 主服务器会记录各个从服务器最后一次向它发送 PING 的时间。
  • 用户可以通过配置 指定网络延迟的最大值 min-slaves-max-lag 及执行写操作所需的至少从服务器数量 min-slaves-to-write

如果至少有 min-slaves-to-write 个从服务器, 并且这些服务器的延迟值都少于 min-slaves-max-lag 秒, 那么主服务器就会执行客户端请求的写操 作。另一方面, 如果条件达不到 min-slaves-to-write 和 min-slaves-max-lag 所指定的条件, 那么写操作就不会被执行, 主服务器会向请求执行写操作的客户端返回一个错误。以下是这个特性的两个选项和它们所需的参数:

min-slaves-to-write <number of slaves>

min-slaves-max-lag <number of seconds>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一名程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值