7

我可以配置 Redis 从站以停止保存转储吗?我省略save了配置文件中的所有指令,但从站仍在进行转储。

4

2 回答 2

10

所以我假设你已经在slave的配置文件中检查了RDB被停用(所有保存行都被注释掉了),并且在配置文件被更改后slave已经重新启动(所以这个配置是活跃的)。

此时slave的后台dump操作被停用,但并不妨碍slave写入dump文件。实际上,slave必须在启动时写入一个转储文件:这是它以批量模式从 master 检索数据的方式。

当 slave 启动时,它会向 master 发送一个 SYNC 请求:

  • master 开始累积 Redis 命令。
  • 主服务器执行后台转储
  • master以bulk方式发送dump文件给slave
  • 从站从主站读取转储文件并将其写入磁盘
  • 完成后,从机从磁盘加载转储文件
  • slave开始处理master积累的Redis命令
  • 最终,奴隶会赶上
  • 从站与主站同步

这就是为什么即使 RDB 为从站停用,您也可以在从站找到转储文件的原因。

于 2012-04-01T20:34:54.467 回答
0

一个很好的阅读是http://redis.io/topics/persistence

Redis 有 2 种持久化,你也应该禁用 AOF:

仅附加文件

快照不是很耐用。如果您运行 Redis 的计算机停止,您的电源线出现故障,或者您不小心kill -9您的实例,写入 Redis 的最新数据将会丢失。虽然这对某些应用程序来说可能没什么大不了的,但也有完全持久性的用例,在这些情况下,Redis 不是一个可行的选择。仅附加文件是 Redis 的另一种完全持久的策略。它在 1.1 版中可用。

您可以在配置文件中打开 AOF:

appendonly yes

从现在开始,每次 Redis 接收到更改数据集的命令(例如 SET)时,它都会将其附加到 AOF。当您重新启动 Redis 时,它将重新播放 AOF 以重建状态。

于 2012-04-01T16:46:56.387 回答