gpt4 book ai didi

java - ShardedJedis 和 JedisCluster 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 10:59:47 30 4
gpt4 key购买 nike

所以我有两种不同的方法可以在 Jedis 中使用 Redis 集群:

方法一友情链接 here

    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();

JedisShardInfo si = null;

si = new JedisShardInfo("10.7.2.242", 7003);
shards.add(si);
si = new JedisShardInfo("10.7.2.242", 7004);
shards.add(si);
si = new JedisShardInfo("10.7.2.242", 7005);
shards.add(si);

ShardedJedis jedis = new ShardedJedis(shards);

jedis.set("foo_first", "foo");

方法二友情链接 here

    Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7003));
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7004));
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7005));
System.out.println("cluster node set initialised");
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("foo_first", "bar");
String value = jc.get("foo_first");
System.out.println(value);

现在我怀疑为什么会有这两种不同的方法,它们之间的基本区别是什么?

最佳答案

ShardedJedis 从逻辑上创建分片,因此它不支持 H/A(故障转移)和重新分配 key (因为 key 分配是基于算法的,我们不能即时更改)。

它是在 Redis 不关心集群特性时引入的,目前你可以用 ShardedJedis 做的大部分工作都是用 RedisCluster (JedisCluster) 完成的。

一个很大的区别是节点故障。 ShardedJedis 不关心 H/A,因此一个节点的故障不会导致整个集群的故障。 (但您不能访问崩溃节点内的 key )但是 Redis Cluster 将情况视为 CLUSTERDOWN,因此您应该准备从节点,以便 Redis Cluster 可以触发故障转移。

关于java - ShardedJedis 和 JedisCluster 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29602985/

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