Redis看起来确实是一款内置复制和惊人速度的绝佳产品.经过测试后,感觉就像是2010年memcached的替代品.
但是,由于通常使用memcached时,会使用一致的散列来均匀地在池中的服务器上分布数据.如果池中的某个服务器出现故障并且无法访问,则会以透明方式处理它,只会丢失丢失的密钥并将其均匀分布到池中剩余的可用服务器上.
另一方面,Redis还内置了分片,但另一个真正有趣的功能叫做自动复制.由于这一点,在狗屎击中风扇的情况下利用从属服务器时,可以大大提高数据的可用性.
但是,我还没有找到任何好的解决方案来处理将redis服务器的状态更改为自动成为新主服务器或通过任何其他方式自动处理Redis故障转移.
怎么可以这样做?对此有什么合适的方法?
但是,由于通常使用memcached时,会使用一致的散列来均匀地在池中的服务器上分布数据.如果池中的某个服务器出现故障并且无法访问,则会以透明方式处理它,只会丢失丢失的密钥并将其均匀分布到池中剩余的可用服务器上.
这不是memcached所做的,客户端库正在做所有这些魔术;)
但是,我还没有找到任何好的解决方案来处理将redis服务器的状态更改为自动成为新主服务器或通过任何其他方式自动处理Redis故障转移.
使用SlaveofCommand更改特征.自动故障转移需要更多编码,连接到服务器,如果您松开连接并且无法在X时间内再次建立连接,则选择一个从站为主站并更改所有其他服务器的从站主站状态.
更新(2012年8月1日):现在有了redis sentinel,一个用于2.4.16及更高版本的监控和自动故障转移解决方案.