我不确定如何在应用程序中创建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);
}
}
答案 0 :(得分:0)
如他们的FAQ中所述,重新分配应为单例:
问:我什么时候需要关闭Redisson实例,是在每个请求结束时还是在线程寿命结束时?
A :仅当您要停止使用其所有功能时,Redisson实例才需要手动关闭。 Redisson与应用程序一起启动和停止是一种常见的模式。由于它是完全线程安全的,因此您可以将Redisson实例视为单例。关闭序列将断开每个连接池中所有活动连接的连接,并清理某些类型的Redisson对象,这些对象需要在处置时进行手动销毁操作,然后将停止事件循环。请注意,整个关闭过程不是即时的。