15

Redis 看起来确实是一个很棒的产品,具有内置的复制功能和惊人的速度。经过测试,感觉绝对是2010年memcached的替代品。

但是,由于在正常使用 memcached 时,会使用一致的散列来在池中的服务器之间均匀分布数据。如果池中的其中一台服务器出现故障并停止访问,它将被透明地处理,只有丢失的密钥将被重新创建并均匀分布在池中剩余的可用服务器上。

另一方面,Redis 还内置了分片,但还有另一个非常有趣的功能,称为自动复制。多亏了这一点,数据的可用性可以大大提高,同时利用从服务器来使用以防万一发生大事。

但是,我还没有找到任何好的解决方案来处理将 Redis 服务器的状态更改为从属服务器以自动成为新的主服务器或通过任何其他方式自动处理 Redis 的故障转移。

怎么可能做到这一点?什么是合适的方法?

4

1 回答 1

21

但是,由于在正常使用 memcached 时,会使用一致的散列来在池中的服务器之间均匀分布数据。如果池中的其中一台服务器出现故障并停止访问,它将被透明地处理,只有丢失的密钥将被重新创建并均匀分布在池中剩余的可用服务器上。

这不是 memcached 所做的,客户端库正在做所有这些神奇的事情;)

但是,我还没有找到任何好的解决方案来处理将 Redis 服务器的状态更改为从属服务器以自动成为新的主服务器或通过任何其他方式自动处理 Redis 的故障转移。

使用SlaveofCommand来改变特性。自动故障转移将需要更多的编码,连接到服务器,如果您失去连接并且无法再次建立连接 X 然后选择一个从属服务器作为主服务器并更改所有其他服务器的从属主状态。

更新(2012 年 8 月 1 日):现在有redis sentinel,这是 2.4.16 及更高版本的监控和自动故障转移解决方案。

于 2010-06-27T19:20:43.213 回答