1

我不确定如何在应用程序中创建 RedissonClient 对象。1- 应该为每个事务创建此对象还是 2- 每个 JVM 应该单例对象?3-所有服务只有一个对象?

目前,我的设置是一个嵌入式 Jetty,带有 Jersey API,用于在不同的 Kubernetes pod 上运行的 3 个服务,Redis 设置是 3 + 3 主从配置。

当前配置如下所示。

公共类 RedisTemplate {

public static final RedissonClient REDISCLIENT;
private static final Logger logger = LogManager.getLogger(RedisTemplate.class);

public static final String redisMaster = "redis-cluster";

static {
    Config config = new Config();

    logger.info("redis config for server");

    config.useClusterServers().addNodeAddress("redis://" + redisMaster + ":6379");

    REDISCLIENT = Redisson.create(config);

}

}

4

1 回答 1

1

正如他们的FAQ中所述,redisson 应该是单例的:

问:我什么时候需要关闭 Redisson 实例,在每个请求结束时或线程生命周期结束时?
A : Redisson 实例仅在您想停止使用其所有功能时才需要手动关闭。Redisson 随应用程序一起启动和停止是一种常见模式。由于它是完全线程安全的,您可以将 Redisson 实例视为单例。关闭序列将断开每个连接池中持有的所有活动连接,它会清理某些类型的 Redisson 对象,需要在处理时进行手动销毁操作,然后停止事件循环。请注意,整个关机过程不是即时的。

于 2019-05-08T10:50:49.980 回答