我设置了 twemproxy (胡桃夹子),将 2 个 redis 服务器作为后端,包括从服务器、哨兵和故障转移。
一旦我添加了另一个 redis 服务器,就无法读取某些密钥,可能是由于 twemproxy 重定向到另一个 redis。
如何在不破坏一致性的情况下添加另一个 redis 实例?
我想将设置用作一致且非常快速的数据库。
以下是我的设置:
redis_cluster:
auto_eject_hosts: false
distribution: ketama
hash: fnv1a_32
listen: 127.0.0.1:6379
preconnect: true
redis: true
servers:
- 127.0.0.1:7004:1 redis_1
- 127.0.0.1:7005:1 redis_2
我想继续对服务器的作业进行分片并能够添加实例。我是否需要使用其他设置?
Twemproxy 不能这样做。您可以使用 Redis 集群,或者如果您想使用 Twemproxy,则必须使用一种称为预分片的技术。也就是说,直接从 32 或 64 个实例或类似实例开始,即使它们都在同一主机中运行以启动。然后开始将实例从一个机器移动到另一个机器,以便扩展到多个实际服务器。Twemproxy "redis_1"中配置的实例右侧的单词用于哈希,以便您可以在移动实例时更改 IP 地址,并且该服务器的哈希仍然相同。
此时,Redis 集群是候选版本 2。虽然它需要更多的测试和部署才能像 Redis 一样进行实战测试,但它已经是一个可行的产品,所以你可能也想测试它。