Tel*_*uar 5 javascript python redis
我创建了一个包含 30 个实例(15 个主节点/15 个节点)的 Redis 集群。通过Python代码,我连接到了这些实例,我找到了master,然后我想向它们添加一些键。
def settomasters(port, host):
r = redis.Redis( host=host, port=port )
r.set("key"+port,"value")
Run Code Online (Sandbox Code Playgroud)
错误:
redis.exceptions.ResponseError:已移动12539 127.0.0.1:30012
如果我尝试设置密钥,redis-cli -c -p portofmyinstance有时我会收到一条重定向消息,告诉您密钥存储的位置。
我知道,例如,在获取请求的情况下,需要一个智能客户端,以便将请求重定向到正确的节点(保存密钥的节点),否则会发生移动错误。是同样的情况吗?我需要捕获 redis.exceptions.ResponseError 并尝试再次设置?
while True:
try:
r.set("key","value")
break
except:
print "error"
pass
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试是上面的代码,但没有解决方案。设置操作永远不会成功。
另一方面,下面的 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();
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢。
对于 Redis 集群,只有当您“找到某个键所属的槽,然后找到每个主服务器服务的槽。有了这些信息,我可以将键设置到正确的节点,而不会出现移动重定向错误”时,您才可以使用普通的 Redis 客户端。正如@Antonis所说。否则你需要http://redis-py-cluster.readthedocs.io/en/master/
| 归档时间: |
|
| 查看次数: |
14220 次 |
| 最近记录: |