从Java连接到AWS Elasticache(Redis集群)的正确方法是什么?

时间:2017-07-19 15:50:05

标签: java amazon-web-services jedis amazon-elasticache redisson

我是 AWS Elasticache redis 的新手,我得到了端点。

Image

我对使用 Jedis Redisson 感到困惑,因为它们都提供单一连接和群集连接类。

Jedis 类似,对于单个连接,我们可以使用:

Jedis conn = new Jedis("endpoint_address");

对于群集连接,我们使用:

Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("redis_cluster_ip", 7379));
JedisCluster jc = new JedisCluster(jedisClusterNodes);

当我想使用 Redisson 时,也会出现这些选项。我不是要尝试比较这两个lib,我的问题是:当你只有一个端点并且仍然可以使用AWS auto时,WHICH ONE是连接到 AWS Redis Elasticache 集群的正确方法缩放功能?

预期答案是:使用SINGLE或CLUSTER MODE。

谢谢:)

2 个答案:

答案 0 :(得分:3)

这取决于您如何配置redis群集。是否启用了群集模式。

您可以在控制台中找到它

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Endpoints.html

  

Redis(已禁用集群模式)群集,使用主要端点   所有写操作。使用单个节点端点进行读取   操作(在API / CLI中,这些称为读取端点)。

     

Redis(已启用集群模式)群集,使用群集的配置   所有操作的端点。您必须使用支持Redis的客户端   集群(Redis 3.2)。您仍然可以从各个节点端点读取数据   (在API / CLI中,这些称为读取端点)。

或使用AWS CLI

aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info  

http://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html

  

ConfigurationEndpoint - &gt; (结构)表示Memcached群集   端点,如果在群集上启用了自动发现,则可以   应用程序用于连接到群集中的任何节点。该   配置端点中始终包含.cfg。例:   mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

答案 1 :(得分:1)

您应该在Redisson中为AWS Elasticache Redis或其他类似的托管服务使用Replicated配置。用法在documentation

中描述