我一直在测试间谍和xmemcached客户端。我一直试图在项目文档中找到答案,但它非常糟糕。
我的问题是关于打开、关闭和重用连接。我在一份文件中找到了这个:
客户机可能会在它不再需要它的任何时候关闭连接。但是,请注意,鼓励客户端缓存它们的连接,而不是每次需要存储或检索数据时重新打开它们。缓存连接将消除与建立TCP连接相关的开销“。
Spymemcached不提供连接池,所以每次创建MemcachedClient实例时,我都要创建一个新的连接,对吗?那我什么时候应该关闭连接?是向我的应用程序中的所有线程提供相同的实例,还是每次创建一个新的实例?
xmemcached确实有一个连接池。在这种情况下,我应该关闭从池中获得的连接吗?
发布于 2011-12-31 19:34:50
Spymemcached不提供连接池,所以每次创建
MemcachedClient实例时,我都要创建一个新的连接,对吗?
是的,每次创建新的MemcachedClient对象时,都会创建一个新的连接。对于应用程序来说,每个连接看起来都是异步的,所以即使有一个连接,对应用程序来说也可能足够了。然而,有些人确实构建了一个MemcachedClients连接池。
,那么我什么时候应该关闭连接?
一旦不再需要与memcached通信,就关闭了连接。如果应用程序使用时间较短,则需要关闭连接,以使jvm停止,因为默认情况下,MemcachedClient连接是守护进程连接。
是应该向我的应用程序中的所有线程提供相同的实例,还是每次创建一个新的实例?
对多个线程使用相同的连接。为每个调用创建一个新连接将导致性能显著下降,因为创建TCP连接的开销很大。
xmemcached确实有一个连接池。在这种情况下,我应该关闭从池中获得的连接吗?
我不熟悉xmemcached,但我可以想象您只想创建几个(可能是16个)线程,并与您的应用程序线程共享它们,以获得最佳性能。
https://stackoverflow.com/questions/8683142
复制相似问题