gpt4 book ai didi

javascript - redis.exceptions.ResponseError : MOVED error in redis set operation 错误

转载 作者:可可西里 更新时间:2023-11-01 11:28:24 36 4
gpt4 key购买 nike

我创建了一个包含 30 个实例(15 个主节点/15 个节点)的 Redis 集群。使用 python 代码连接到这些实例,我找到了主人,然后我想给他们添加一些 key 。

def settomasters(port, host):
r = redis.Redis( host=host, port=port )
r.set("key"+port,"value")

错误:

redis.exceptions.ResponseError: MOVED 12539 127.0.0.1:30012

如果我尝试从 redis-cli -c -p portofmyinstance 设置 key ,有时我会收到一条重定向消息,告知 key 的存储位置。

我知道,例如在获取请求的情况下,需要一个智能客户端才能将请求重定向到正确的节点(持有 key 的节点),否则会发生移动错误。是一样的情况吗?我需要捕获 redis.exceptions.ResponseError 并尝试重新设置?

while True:
try:
r.set("key","value")
break
except:
print "error"
pass

我的第一次尝试是在代码之上,但没有解决方案。设置操作永远不会成功。

另一方面,下面的 javascript 代码不会抛出错误,我想不出原因:

var redis = require('redis-stream'),
client = new redis(30001, '127.0.0.1');

// Open stream
var stream = client.stream();

// Example of setting 200 records
for(var record = 0; record <200; record++) {
var command = ['set', 'qwerty' + record, 'QWERTYUIOP'];
stream.redis.write( redis.parse(command) );
}

stream.on('close', function () {
console.log('Completed!');
});

// Close the stream after batch insert
stream.end();

任何帮助将不胜感激,谢谢。

最佳答案

对于 redis 集群,只有当您“为某个键找到属于它的槽,然后找到每个主服务器服务的槽”时,您才能使用普通的 redis 客户端。有了这些信息,我可以将键设置到正确的节点,而无需移动重定向错误。”正如@Antonis 所说。否则你需要 http://redis-py-cluster.readthedocs.io/en/master/

关于javascript - redis.exceptions.ResponseError : MOVED error in redis set operation 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43208157/

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