首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Azure redis群集时,是否应该在Redis客户端中使用群集连接?

使用Azure redis群集时,是否应该在Redis客户端中使用群集连接?
EN

Stack Overflow用户
提问于 2020-06-30 22:50:38
回答 1查看 786关注 0票数 0

Azure文档有点混乱,docs说:

我需要对客户端应用程序进行任何更改才能使用集群吗?

  • 启用群集时,只有数据库0可用。如果客户端应用程序使用多个数据库,并且尝试读取或写入除0以外的数据库,则引发下列异常。未处理的异常: StackExchange.Redis.RedisConnectionException: ProtocolFailure on GET --> StackExchange.Redis.RedisCommandException:此服务器上不支持多个数据库;无法切换到数据库:6
  • 如果使用的是StackExchange.Redis,则必须使用1.0.481或更高版本。使用连接到未启用群集的缓存时使用的相同端点、端口和键连接到缓存。唯一的区别是,所有的读和写都必须对数据库0执行。

并说:

所有的Redis客户端都支持集群吗?

  • 并不是所有的客户端都支持Redis集群!请检查您正在使用的库的文档,以验证您使用的是支持群集的库和版本。 StackExchange.Redis是一个支持集群的库,在其较新的版本中支持群集。有关其他客户端的更多信息,请参见Redis群集教程中的“玩群集”部分。
  • -- Redis集群协议要求每个客户端在集群模式下直接连接到每个碎片,还定义了新的错误响应,例如“移动的”na 'CROSSSLOTS'. (?)尝试使用不支持集群模式缓存的集群的客户端可能会导致大量移动的重定向异常,或者,如果您正在执行跨槽多键请求,则只会中断应用程序。

我正在使用NodeJS 罗尔迪斯,但我不知道是否需要使用集群模式。

EN

回答 1

Stack Overflow用户

发布于 2021-06-23 05:35:05

根据您引用的文档,您需要一个客户端来支持集群设置中的多键请求(如MGET )的错误响应。当通过多键请求访问存储在不同时隙中的密钥时,这些错误就会发生.

支持群集的redis客户端还可以在访问密钥时将您重定向到正确的节点。

https://redis.io/topics/cluster-tutorial#playing-with-the-cluster

redis-cli集群支持非常基本,因此它总是使用Redis集群节点能够将客户端重定向到正确节点的事实。严肃的客户端能够做得更好,并缓存哈希槽和节点地址之间的映射,从而直接使用到正确节点的正确连接。只有在群集配置中发生更改时,例如故障转移之后或系统管理员通过添加或删除节点更改群集布局之后,映射才会被刷新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62667241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档