gpt4 book ai didi

Redis 集群上的 Redis 命令批处理

转载 作者:行者123 更新时间:2023-12-03 06:42:40 24 4
gpt4 key购买 nike

我们正在使用 StackExchange.Redis 访问常规 Redis 数据库。现在我们想将该数据库设置为集群,因此我们正在检查代码以确保不存在 MULTI或 Lua 脚本可能会因为跨节点的 key 分布而中断。

没有 Lua 脚本或 MULTI但是有很多redis.GetDatabase().CreateBatch() .据我所知,批处理只是将命令通过管道发送到 Redis,但这是否适用于 Redis Cluster?

在阅读了一些文档之后,我会说批处理中的每个命令都将单独处理,如果节点将客户端重定向到该特定命令的另一个节点,它将由库本身处理。事实上,批处理中的每个命令都有自己的任务返回,所以应该没问题。然而,互联网上有一些人声称相反:https://groups.google.com/forum/#!topic/redis-db/1wc9tJSprms

那么我可以期望批处理在 Redis 集群中正常工作吗?

最佳答案

它应该工作。在内部,RedisBatch.Execute将排队的命令拆分为每个目标组(保持每个组的原始顺序),然​​后分别刷新每个组;所以它确实考虑了这种情况并尝试尽可能地将事情放在一起以避免数据包碎片和交错消息等。如果所涉及的 key 意味着这最终会与 3 个不同的服务器通信,那么就这样吧。与仅与一台服务器通信相比,它将涉及更多的数据包,但是……您最终还需要 3 个服务器 CPU 来处理工作,所以……有利也有弊。但从根本上说:是的,它应该有效。

关于Redis 集群上的 Redis 命令批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60452554/

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