0

我设置了 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

我想继续分片服务器的工作并能够添加实例。我需要使用其他设置吗?

4

1 回答 1

2

Twemproxy 无法做到这一点。你可以使用 Redis Cluster,或者如果你想使用 Twemproxy,你必须使用一种叫做presharding的技术。也就是说,直接从 32 或 64 个实例或类似实例开始,即使它们都在同一主机上运行以启动。然后开始将实例从一个盒子移动到另一个盒子,以便扩展到多个实际服务器。在 Twemproxy 中配置的实例右侧的单词“redis_1”用于散列,因此您可以在移动实例时更改 IP 地址,并且该服务器的散列​​仍然是相同的。

Redis Cluster 目前是候选版本 2。虽然它需要更多的测试和部署才能像 Redis 一样进行实战测试,但它已经是一个可行的产品,因此您可能也想对其进行测试。

于 2015-01-14T22:20:31.347 回答