- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我有两种不同的方法可以在 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/
所以我有两种不同的方法可以在 Jedis 中使用 Redis 集群: 方法一友情链接 here List shards = new ArrayList(); JedisShardInf
以下是从jedis github页面直接复制的Jedis文档: List shards = new ArrayList(); JedisShardInfo si = new JedisShardInf
我最初在生产环境中以集群模式使用 Redis。但后来我意识到,如果我使用 ShardedJedis java API 使用 Redis 独立服务器,我可以使用 ShardedJedisPipeline
我是一名优秀的程序员,十分优秀!