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

当前,我的设置是一个带有Jersey API的嵌入式Jetty,用于在一组不同的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);

}


}

最佳答案

如其FAQ中所述,重新分配应该是单例的:


问:何时需要在每个请求结束或线程寿命结束时关闭Redisson实例?
答:仅当您要停止使用其所有功能时,Redisson实例才需要手动关闭。 Redisson与应用程序一起启动和停止是一种常见的模式。由于它是完全线程安全的,因此您可以将Redisson实例视为单例。关闭序列将断开每个连接池中保存的所有活动连接,并清理某些类型的Redisson对象,这些对象需要在处置时进行手动销毁操作,然后将停止事件循环。请注意,整个关闭过程不是即时的。

10-08 04:47