【发布时间】:2014-12-17 18:18:36
【问题描述】:
我有两个 Redis 数据库配置为主/从。
我向奴隶添加了钥匙。如何将slave的内容重写为master? 当我将密钥添加到 master 时,只有我掌握 Redis。当我向从属添加密钥时,它仅在从属 Redis 中。 如何从奴隶中的主人那里获得钥匙?反之亦然。
【问题讨论】:
标签: c# redis master-slave
我有两个 Redis 数据库配置为主/从。
我向奴隶添加了钥匙。如何将slave的内容重写为master? 当我将密钥添加到 master 时,只有我掌握 Redis。当我向从属添加密钥时,它仅在从属 Redis 中。 如何从奴隶中的主人那里获得钥匙?反之亦然。
【问题讨论】:
标签: c# redis master-slave
Redis 的主/从复制严格来说是一种方式,从主到从。对主节点的任何更新都会复制到下游并覆盖从节点的内容。
如果您的复制正在运行,所有主更新将几乎立即复制到从属。如果您使用可写从属服务器,主服务器和从服务器中都存在的键将被主服务器的复制流覆盖。仅存在于从属服务器(可写时)的新密钥永远不会被复制到上游主服务器。将密钥添加到 master 的唯一方法是直接写入它(或者如果它本身是副本,那么写入它的 master...)。
剩下的问题是,为什么要将密钥写入从属服务器并将它们也发送给主服务器。从理论上讲,您可以让您的应用程序同时写入主服务器和从服务器,但想到这样做会遇到的竞争条件和一致性问题,我不寒而栗。
【讨论】:
您所描述的是多主设置,这在 Redis 中是不可能的。
【讨论】: