微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据Lettuce-Standalone、RedisCluster和Sentinel中的配置选择多个Redis连接?

如何解决如何根据Lettuce-Standalone、RedisCluster和Sentinel中的配置选择多个Redis连接?

我需要支持多个 redis 连接。

要求是为什么我们不能有像 Connection 这样的通用连接对象,而不是有 StatefulRedisConnection 和 StatefulRedisClusterConnection ?

为什么我们有 RedisClient 和 RedisClusterClient 而不是可以连接到任何类型的连接(如 Standalone、Sentinel 和 Cluster)的通用 Client 对象?

当我在命令行参数中说connectionType=cluster(或)connectionType=sentinel时,如何通过切换Standalone、cluster或sentinel来实现工厂模式?

 RedisClient client = RedisClient.create(redisURI);
        AbstractRedisClient abstractRedisClient = RedisClient.create(redisURI);
        abstractRedisClient = RedisClusterClient.create(redisURI);
        AbstractRedisClient finalAbstractRedisClient = abstractRedisClient;

        GenericObjectPool<StatefulRedisConnection<String,String>> pool = ConnectionPoolSupport
                .createGenericObjectPool(() -> (finalAbstractRedisClient instanceof RedisClient) ? ((RedisClient) finalAbstractRedisClient).connect() : ((RedisClusterClient) finalAbstractRedisClient).connect(),new GenericObjectPoolConfig());
        try (StatefulRedisConnection<String,String> connection = pool.borrowObject()) {
            RedisCommands<String,String> commands = connection.sync();
            pong = commands.ping();
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。