首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中使用连接池memcached (spymemcached)

如何在Java中使用连接池memcached (spymemcached)
EN

Stack Overflow用户
提问于 2012-05-22 03:40:31
回答 3查看 10.4K关注 0票数 11

我使用的API,spymemcached,基本上给出了

代码语言:javascript
运行
复制
MemcachedClient memc = new MemCachedClient(new InetSocketAddress("host", port));

它实际上并没有给我一个connect()isConnected()函数。该应用程序接口提供了一个DefaultConnectionFactory,但乍一看,它并不像是在管理一个连接池。有人知道如何在spymemcached或其他Java memcached库中做到这一点吗?

更普遍的是,让我的应用程序容忍连接丢失的最“道德”方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-23 07:25:51

当您调用MemcachedClient构造函数时,它会自动连接到memcached服务器。没有connect()isConnected()方法。如果您失去了与Spymemcached的连接,它将尝试为您重新连接。此外,DefaultConnectionFactory还用于指定特殊的连接属性(例如,散列方法和失败模式)。如果要使用连接工厂,则需要使用接受ConnectionFactoryList<InetSocketAddress>参数的MemcachedClient构造函数。

Spymemcached使用单个IO线程,但其行为类似于多线程客户端。例如,使用一个线程,您可以每秒执行高达50k次的操作。如果你想创建一个线程池,那么你必须在你的用户应用程序中创建它。

--让我的应用程序容忍连接丢失的最“道德”的方法是什么?

正如我上面提到的,如果Spymemcached失去了与服务器的连接,它将尝试重新连接。这个过程通常需要大约17毫秒。但是,大多数使用客户端的人都会在他们的应用程序代码中创建一个线程池。

票数 17
EN

Stack Overflow用户

发布于 2014-07-08 18:09:59

您可以在执行set、delete或get操作时创建对象池initially.Then,您可以从池中借用对象。一旦调用了MemcachedClient的构造函数,它就会自动连接到服务器。

票数 0
EN

Stack Overflow用户

发布于 2014-08-18 14:25:06

有些人使用DBCP来合并连接。您可以在github查看项目,它具有池化功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10691528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档