gpt4 book ai didi

caching - 有没有可能让一个写请求从一个slave直接传递给Redis中的master?

转载 作者:可可西里 更新时间:2023-11-01 11:31:12 26 4
gpt4 key购买 nike

我们需要一个可以复制到其他数据中心的内存中键/值存储。
这是我们的要求:
1.所有数据中心必须有相同的数据库(稍微重新同步是可以接受的,比如30-60秒)。我知道我们可以只有一个主服务器,这没问题。一个数据中心只有一个数据库会是master。但是如果主服务器死了,那么我们需要选举一个新的主服务器。
2. 我们需要能够向任何一个从节点发送写请求,它会直接发送给主节点。

我知道有一个 Redis 集群可以接受所有的写请求,但它不适合我们,因为数据分布在节点之间(所以,所有数据中心的所有服务器将处理不同的数据,但我们需要有所有数据中心的数据相同,因为我们只有 5% 的写入和 95% 的读取)。

是否可以用Redis实现?

最佳答案

我错了。我发现它实际上可以用 Redis Cluster 来完成。我们必须创建一个主节点并将所有哈希槽分配给它。之后我们必须创建从节点并复制主节点。在这种情况下,我们将进行自动故障转移,所有节点都将保留相同的数据。

设置从节点。 IE。复制我们需要使用以下内容的母版:

./redis-trib.rb add-node --slave --master-id {master_id} {master_ip}:{master_port} {slave_ip}:{slave_port}

或者我们可以添加一个新的空母版:

./redis-trib.rb add-node {any_node_ip_in_cluster}:{port} {new_node_ip}:{port}

然后把它交给slave:

redis {master_ip}:{master_port}> cluster replicate {master_id}

附言Redis 要求至少有 3 个主节点,但这不是集群的硬性限制。我们仍然可以只有一个主节点,这完全没问题。

关于caching - 有没有可能让一个写请求从一个slave直接传递给Redis中的master?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40249185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com