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

Bro*_*mer 5 java amazon-web-services jedis amazon-elasticache redisson

我是AWS Elasticache redis的新手,并且低于端点。

图像

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

就像在Jedis中一样,对于单个连接我们可以使用:

Jedis conn = new Jedis("endpoint_address");
Run Code Online (Sandbox Code Playgroud)

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

Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("redis_cluster_ip", 7379));
JedisCluster jc = new JedisCluster(jedisClusterNodes);
Run Code Online (Sandbox Code Playgroud)

当我想使用Redisson时,也会出现这些选项。我不想比较这两个库,我的问题是:当您只有一个端点并且仍然可以使用 AWS 自动扩展功能时,哪一种是连接到AWS Redis Elasticache集群的正确方法?

预期的答案是:使用单机或集群模式。

谢谢 :)

str*_*gjz 4

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

你可以在控制台找到它

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

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

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

或者使用 AWS CLI

aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info  
Run Code Online (Sandbox Code Playgroud)

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

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