gpt4 book ai didi

redis - Client与Redis Cluster的交互

转载 作者:可可西里 更新时间:2023-11-01 11:14:35 33 4
gpt4 key购买 nike

我已经开始探索 Redis 集群及其 C 客户端 (hiredis)。我一直无法找到有关客户端与 Redis 集群交互的很多信息。我在这方面有一些疑问:

  • 客户端一开始是否与集群的所有节点(主从)建立连接?

  • 是否有任何协调器节点将客户端的请求代理到正确的节点?

  • 如果不是,客户端是否会定期获取有关集群中每个节点的哈希槽持有量的信息(以便将其请求发送到正确的节点)?

  • 哪些客户端-集群连接特定参数是可配置的?

最佳答案

Does the client make a connection with all the nodes?

是的,client 至少与所有 master 保持连接。

Is there a coordinator node which proxies the client's request to the correct node?

不,没有。按照设计,redis 集群没有代理。(旁白:有一些关于为 Redis 开发代理解决方案的讨论 - 但我不希望它很快发布。)

Does the client periodically get info about hash slot bindings?

当客户端启动时,它会建立一个哈希槽映射缓存。然后,在运行时,如果一个插槽被迁移到另一个主服务器,redis 集群将返回一个特定的错误,告诉客户端该插槽的新所有者。然后,客户端应缓存新所有者,并针对新节点重试请求。

由于这种设计,客户端通常对每个插槽及其所有者都有很好的缓存,并且开销很小。

which client connection parameters are configurable?

最重要的参数是连接到集群的服务器节点列表。您不必指定所有节点 - 客户端可以自动发现所有主节点。只要有一个节点处于事件状态,客户端就会发现所有其他节点。

除此之外,您还有连接超时参数、控制 TLS 的参数。

关于redis - Client与Redis Cluster的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298022/

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