Node.js Redis cluster:hgetall是否会在群集中的所有节点上搜索密钥?
默认情况下,Aws elasticache创建redis群集 我使用nodejs和ioredis 我的问题是,如果我调用hgetall,它会自动查询集群中的所有节点吗?Node.js Redis cluster:hgetall是否会在群集中的所有节点上搜索密钥?,node.js,redis,redis-cluster,Node.js,Redis,Redis Cluster,默认情况下,Aws elasticache创建redis群集 我使用nodejs和ioredis 我的问题是,如果我调用hgetall,它会自动查询集群中的所有节点吗? 或者我还需要做些什么 更新:我认为我在这里说的不正确,请参阅。对于像HGETALL这样的命令,客户端库知道将其发送到哪里 从文档中,强调我的: 每个命令将被发送到一个节点对于包含键的命令(例如…HGETALL),ioredis将它们发送到为键提供服务的节点[sic],对于不包含键的其他命令(例如INFO、keys和FLUSHDB
或者我还需要做些什么 更新:我认为我在这里说的不正确,请参阅。对于像
HGETALL
这样的命令,客户端库知道将其发送到哪里
从文档中,强调我的:
每个命令将被发送到一个节点对于包含键的命令(例如…HGETALL),ioredis将它们发送到为键提供服务的节点[sic],对于不包含键的其他命令(例如INFO、keys和FLUSHDB),ioredis将它们发送到随机节点
不,不是自动的。您需要自己向集群中的每个节点发送
hgetall
。有一个nodes()
实用程序函数返回节点数组以便于执行此操作
文档明确回答了这一问题,并提供了一个示例,请参见。更新:我认为我在这里说的不正确,请参见。对于像
HGETALL
这样的命令,客户端库知道将其发送到哪里
从文档中,强调我的:
每个命令将被发送到一个节点对于包含键的命令(例如…HGETALL),ioredis将它们发送到为键提供服务的节点[sic],对于不包含键的其他命令(例如INFO、keys和FLUSHDB),ioredis将它们发送到随机节点
不,不是自动的。您需要自己向集群中的每个节点发送
hgetall
。有一个nodes()
实用程序函数返回节点数组以便于执行此操作
文档明确回答了这一问题,并提供了一个示例,请参阅。您不需要查询所有节点。用于连接到群集,它会将命令发送到正确的节点
Redis集群的一个像样的客户端库应该实现。客户端库的最终用户不必担心密钥的位置。您不需要查询所有节点。用于连接到群集,它会将命令发送到正确的节点 Redis集群的一个像样的客户端库应该实现。客户端库的最终用户不应该担心密钥的位置