vert.x - 如何在集群模式下将 Vertx RedisClient 与 Elasticache 连接
问题描述
我正在使用包io.vertx.rxjava.redis.RedisClient
中的 Vertx Redis 客户端连接到 Elasticache Redis。
它确实连接但显示错误,
io.vertx.redis.client.impl.types.ErrorType: MOVED 4985 xxx.xxx.xxx.xxx:63791
在阅读了错误之后,我发现它是因为有分片并且它无法连接到所有这些。
从库中,我无法确定在集群模式下使用什么方法进行连接。
解决方案
这是一个如何在集群模式下连接和发送 get 命令的示例。
定义选项:
final RedisOptions options = new RedisOptions()
.setType(RedisClientType.CLUSTER)
.setUseSlave(RedisSlaves.SHARE)
.setMaxWaitingHandlers(128 * 1024)
.addEndpoint("redis://127.0.0.1:7000")
.addEndpoint("redis://127.0.0.1:7001")
.addEndpoint("redis://127.0.0.1:7002")
.addEndpoint("redis://127.0.0.1:7003")
.addEndpoint("redis://127.0.0.1:7004")
.addEndpoint("redis://127.0.0.1:7005");
连接并发送命令:
Redis.createClient(vertx, options).connect(onCreate -> {
final Redis cluster = onCreate.result();
cluster.send(cmd(SET).arg("key"), set -> {
System.out.println(set.result());
});
});
提示:如果您不确定如何使用某些库或文档不够清楚,您可以随时查看测试(如果该项目有它们)。您可以检查它们是如何实现的,以便您可以使用那里的示例。
推荐阅读
- keras - 如何适应这个简单的 mnist 分类
- kubernetes - 从主机到容器的 Kubernetes 配置文件?
- sql - 需要对每一行的过滤条件中的一列求和
- openapi - 如何在 OpenAPI 2.0 规范中添加 content-disposition 标头
- python - 当列名相同时重命名DataFrame中的列
- sql - 是否可以在 Azure 和 SQL 中使用跨数据库查询?
- python - 锁定多线程 pywinauto 发送密钥
- jquery - 如果您只做一个小的滚动轻推或冲动,则滚动到元素
- c# - VS 2017 .Net core 2.2 中缺少 Blazor 模板
- c++ - 创建对象的第二个实例会改变整个类的行为 (C++)