【发布时间】:2023-01-22 10:58:13
【问题描述】:
我正在使用生菜管道,我有一个设计问题。当尝试使用下面的“sendBlock”方法向 redis 发送命令块时,我正在考虑 2 个选项:
(1) 拥有一个已经在类中建立的连接实例,并重用它:
private void sendBlock()
{
this.conn.setAutoFlushCommands(false);
(...)
this.conn.flushCommands();
}
(2) 每次发送命令块时,都会从 redis 获取连接,执行操作并关闭它。
private void sendBlock()
{
StatefulRedisModulesConnection<String, String> conn = RedisClusterImpl.connect();
conn.setAutoFlushCommands(false);
(...)
conn.flushCommands();
conn.close();
}
由于已建立的连接似乎在生菜的所有线程之间共享,我不确定第 1 点是否正确。如果没有,我必须转到第 2 点。在这种情况下,我不知道从 Redis 获取连接的成本是多少,所以我想知道我是否需要使用池(生菜中不推荐的东西文档)。在我们的用例中,“sendBlock”方法可以同时调用数百次,因此它被许多不同的线程密集使用。
任何帮助将非常感激。
琼。
【问题讨论】: