由于单个redis实例不符合我的要求,我选择了redis集群。我形成了具有三个节点的集群,并将数据填充到集群中。当我使用JedisCluster从集群获取数据时,它需要比单个实例更多的时间。那么,将jedis与redis集群连接起来的正确方法是什么。如何使用连接池将jedis与redis集群连接?
答案 0 :(得分:2)
根据您所拥有的群集策略,在jedis群集中检索数据时,您会发现延迟是正常的,因为您将从一个jedis绑定到另一个jedis以获取数据。红色箭头是jedis群集中查询添加时间的原因。
访问正确实例的唯一途径是从密钥中了解数据的位置,在位置示例的密钥中介绍: " instance3 /用户/ 5"或找到位置实例对键进行计算。
答案 1 :(得分:1)
JedisCluster创建了自己的池。您可以在创建JedisCluster对象时提供池的配置。从那时起,您可以将集群视为单个实例,并且请求将转到正确的集群实例。
JedisCluster cluster - new JedisCluster(...);
...
cluster.set(key, value);
尝试找出它去的实例可以由getSlot()
完成,但不能保证从一个时刻到下一个时刻你设置的键在同一个实例上。由于故障转移,它可能已经移动。