Memcached Cache客户端的一个参数

  今天,有一个使用我优化的Memcached cache Client给我发了邮件问到一个参数的作用,觉得还是比较重要的一个参数,因此也说一下,同时也在这里说一下,当前优化过的客户端已经作了几次小的升级,修复了一些边界数据的问题,大家如果在使用的话,最好能够升级。( http://code.google.com/p/memcache-client-forjava/

   邮件如下:

   你好:
<socketpool name="pool0" failover="true" initConn="5" minConn="5"
  maxConn="250" maintSleep="5000" nagle="false" socketTO="3000"
  aliveCheck="true" >
  <servers>10.0.0.16:11111</servers>
  <weights>10</weights>
 </socketpool>
能解释下maintSleep这个意思么?我看有的资料说吧它设置为0性能更好,能给些建议么?谢谢!!我们现在的PV大约每天500万。

 

    这个参数是对此连接池维护线程的检查间隔时间的配置,如果配置小于等于0,则将不会有后台线程维护此连接池,参数单位为毫秒,下面解释一下维护连接池的含义,其实就和其他的资源池一样,资源池的目的就是为了解决资源的申请和释放的开销增加系统压力的问题,将资源通过池的方式回收重用,有利于系统性能的提高。memcached cache client 其实是通过socket来和服务端进行通信,建立socket连接也是比较消耗时间的工作,因此配置了池的初始连接数(initConn),最小连接数(minConn),最大连接数(maxConn)。这三者关系如下图,维护他们之间状态转移的就是后台线程。

 

    后台进程维护资源池的作用就是将有限资源回收,例如数据库连接,如果一台oracle只有500个连接数可以支持,那么如果一个应用都占用了50个闲置,那对于其他需要资源的应用来说无疑是一种浪费。但如果配置了资源管理,但由于应用属于忙时和闲时交替比较频繁的情况,那么如果时间配置的不是很合适,就会达不到原来资源池的作用,资源反复回收和申请。所以对于这个参数的配置,个人觉得一定要配,配置的值需要注意,初始化和最小的值可以是自己预估平时平均并发处理的均值,最大的连接数当然依赖于资源的总数,而维护时间间隔则最好是能够根据闲时和忙时的情况来考虑配置,这样既不会浪费资源,同时也不会使资源池时效。

    顺带说一句,如果对于数据丢失要求不是很苛刻,然后网络情况也不错的时候,可以将aliveCheck设置为false,因为如果是true,在每一次发送任何数据操作之前都会去做心跳检查,这个未来也会考虑去优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Memcached 客户端中,通常有两个超时相关的设置:连接超时和操作超时。 1. 连接超时:指当客户端尝试连接 Memcached 服务器时,如果在规定的时间内无法建立连接,则会超时。可以通过设置客户端的连接超时时间来调整这个设置。具体方法取决于你使用的客户端库,例如在 PHP 中,可以使用 `Memcached::setOption()` 方法设置 `OPT_CONNECT_TIMEOUT` 选项来调整连接超时时间。 2. 操作超时:指当客户端发送一个请求给 Memcached 服务器时,如果在规定的时间内没有收到响应,则会超时。可以通过设置客户端的操作超时时间来调整这个设置。同样,具体方法取决于你使用的客户端库,例如在 Python 中,可以使用 `memcache.Client()` 的 `socket_timeout` 参数设置操作超时时间。 需要注意的是,超时时间设置过短可能会导致误判或性能问题,设置过长则可能会增加系统响应时间。因此,需要根据具体的场景和系统负载情况来进行调整。 ### 回答2: 要调整 Memcached 客户端的超时设置,可以按照以下步骤进行操作: 1. 确定需要调整超时设置的客户端程序和操作系统。 2. 获取客户端程序的配置文件或代码文件。 3. 打开配置文件或代码文件,查找超时相关的配置项或代码片段。 4. 根据需要,调整超时时间的数值。可以增加或减少超时时间,以适应不同的网络环境和业务需求。 5. 保存配置文件或代码文件,并重新启动或重新编译客户端程序,使新的超时设置生效。 需要注意的是,不同的客户端程序可能有不同的超时设置方式,以下是一些常见的调整超时设置的方法: - 如果使用的是一些开源的 Memcached 客户端库,可以查阅它们的文档,寻找相关的超时设置选项,并按照文档的指导进行调整。 - 如果使用的是自己编写的客户端程序,可以在代码中找到与超时设置相关的部分,根据需要进行调整。例如,可以修改连接超时、读取超时和写入超时等参数。 - 如果使用的是配套的命令行工具(如memcached-tool),可以在命令行中指定超时参数。例如,使用"-t"参数指定超时时间为X秒。 总之,根据具体的情况,通过修改配置文件、调整代码或加入参数等方式,可以方便地调整 Memcached 客户端的超时设置,以满足实际需求。 ### 回答3: 要调整 Memcached 客户端的超时设置,可以通过以下步骤进行操作: 1. 首先,确定你所使用的 Memcached 客户端库。不同的编程语言可能有不同的 Memcached 客户端库,如 php-memcached、python-memcached 等。 2. 查阅所使用的 Memcached 客户端库的文档或官方网站,了解相关的超时设置参数和默认值。通常,超时设置参数的名称可能会有所不同,例如 timeout、connect_timeout、socket_timeout 等。 3. 根据文档或官方网站的指引,找到设置超时的方法或函数。这些方法或函数通常会在创建 Memcached 客户端对象或连接到 Memcached 服务器时被调用。调用方法可能会接受一个超时值作为参数,单位可以是秒或毫秒。 4. 根据自己的需求,设置一个适当的超时值。超时值应该与你的应用逻辑和网络环境相匹配。通常情况下,可以将超时值设置为几秒钟或几毫秒,以确保在超时期限内获得响应。 5. 在代码中修改相应的设置,并重新编译或重启应用程序,以使设置生效。 6. 测试代码的修改是否生效。可以使用一些测试脚本或工具来模拟访问 Memcached 服务器并检查超时设置是否符合预期。 请注意,不同的 Memcached 客户端库和版本可能会有不同的超时设置方式和参数名称。因此,在进行设置时,应仔细阅读和理解所使用的客户端库的文档,并根据实际情况进行相应的调整和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值