memcached客户端:打开,关闭和重用连接

时间:2011-12-30 19:20:48

标签: memcached spymemcached

我一直在测试spymemcached和xmemcached客户端。我一直试图在项目文档中找到答案,但它很差。

我的问题是关于打开,关闭和重用连接。我在一份文件中找到了这个:

  

客户端可能会在不再需要它的任何时刻关闭连接。注意,   但是,鼓励客户缓存他们的连接   而不是每次需要存储或检索数据时重新打开它们。缓存连接将消除与建立TCP连接相关的开销“。

Spymemcached没有提供连接池,所以每次创建MemcachedClient实例时,我都在创建一个新连接吗?然后什么时候应该关闭连接?我应该为我的应用程序中的所有线程提供相同的实例,还是每次都创建一个新的线程?

xmemcached确实有一个连接池。在这种情况下,我应该关闭从池中获得的连接吗?

1 个答案:

答案 0 :(得分:8)

  

Spymemcached没有提供连接池,所以每次创建MemcachedClient实例时,我都在创建一个新连接吗?

是的,每次创建新的MemcachedClient对象时,都会创建一个新连接。每个连接对应用程序来说都是异步的,因此即使有一个连接也可能足以满足您的应用程序。但是,有些人会建立MemcachedClients的连接池。

  

然后什么时候应该关闭连接?

一旦不再需要与memcached通信,就会立即关闭连接。如果你的应用程序是短暂的,你需要关闭连接以使jvm停止,因为默认情况下MemcachedClient连接是守护进程连接。

  

我应该为我的应用程序中的所有线程提供相同的实例,还是每次都创建一个新的?

对多个线程使用相同的连接。由于创建TCP连接的开销,为每个调用创建新连接将导致性能显着下降。

  

xmemcached确实有一个连接池。在这种情况下,我应该关闭从池中获得的连接吗?

我不熟悉xmemcached,但我想你只想创建几个(16个)线程并与你的应用程序线程共享它们以获得最佳性能。