`
cenwenchu
  • 浏览: 165283 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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,在每一次发送任何数据操作之前都会去做心跳检查,这个未来也会考虑去优化。

分享到:
评论

相关推荐

    Memcached缓存机制 用好Cache,优化应用

    5. **TCP协议通信**:Memcached使用TCP协议进行客户端与服务器之间的通信,支持多种编程语言的客户端库,方便不同语言的应用进行交互。 **二、安装与配置** 1. **Windows环境**:在Windows上安装Memcached相对简单...

    SSM与memcached整合项目Spring Cache

    3. **配置memcached客户端**:创建一个`MemcachedClient`实例,设置连接池大小、超时时间等参数,并连接到memcached服务器。 4. **启用Spring Cache**:在Spring配置文件中,使用`@EnableCaching`注解启用缓存功能...

    (SSM框架)memcached整合Spring基于Cache注解.

    在Spring的配置文件中,需要定义一个`MemcachedCacheManager`,并将配置好的MemcachedClient注入。同时,通过`&lt;cache:annotation-driven&gt;`标签启用基于注解的缓存处理。 7. **MyBatis与Memcached结合**: 虽然...

    MemCached.net 安装说明

    MemCached.net 是针对.NET环境的一个客户端实现,它为.NET开发者提供了方便地使用Memcached服务的接口。 安装MemCached首先需要在服务器上部署Memcached服务。在Windows环境下,你可以下载预编译的Windows版本或...

    memcached在SSH中的配置

    - 将`ConcurrentMapCache`替换为`MemcachedCache`,并注入`MemcachedClient`。 3. **Struts2集成**: - 使用struts2的插件(如struts2-memcached-plugin),在struts.xml中配置。 - 在Action中添加注解或配置,...

    memcached整合hibernate资源合集

    在Java环境中,还需要引入一个Memcached的Java客户端库,如spymemcached或xmemcached。 2. **配置Hibernate缓存**:在Hibernate的配置文件中,你需要指定使用Memcached作为二级缓存提供者。这可能涉及修改`...

    Memcached的原理及应用

    以下是一个简单的Perl示例,展示了如何创建Memcached客户端对象,设置键值对,并设置过期时间: ```perl #!/usr/bin/perl use strict; use warnings; use Cache::Memcached; my $key = "foo"; my $value = "bar"; ...

    memcached集群linux搭建

    本文将详细介绍如何在Linux上构建一个基于淘宝月光宝盒(Taobao MoonBox)架构的Memcached集群。 **1. 安装Memcached** 首先,确保你的Linux系统已经安装了必要的软件包管理器,如`apt`(Ubuntu/Debian)或`yum`...

    java_memcached所需jar包

    这是阿里云开发的XPlatform ASF Cache组件,也是一个Java Memcached客户端。这个版本2.5.1可能包含以下特点: - 针对阿里巴巴内部框架和环境优化,适合大规模分布式系统。 - 可能提供了更高级别的抽象,如缓存...

    java使用memcached的实例

    本文将详细解析如何在Java项目中使用Memcached,包括其配置方法以及一个具体的示例代码,旨在帮助开发者深入理解并掌握这一技术。 ### 一、Memcached简介 Memcached是一种开源的高性能内存键值存储系统,主要用于...

    memcached1

    memcached的最新版是采用c语言进行开发和设计的,据说旧版的是采用perl语言开发的,而且它是一个应用软件来的,是作为缓存服务器的服务器端运行在服务器上的,需要使用特定的语言编写客户端与其进行通信来进行数据的...

    Memcached分布式缓存

    当memcached接收到来自客户端的数据时,会将其存储在一个合适大小的slab中。如果数据大小发生变化,则可能会被移动到另一个更合适的slab中。 **2.3 SlabAllocator的缺点** 尽管Slab Allocation能有效减少内存碎片...

    Net Memcached安装及使用说明

    由于原文档未给出具体的安装与使用步骤,此处提供一个大致框架: 1. **下载并安装`Memcached.ClientLibrary`库**。 2. **在项目中引用相应的DLL文件**。 3. **初始化客户端对象**: - 创建`MemcachedClient`实例,...

    memcached linux windows 安装 使用 缓存 集群

    - 客户端:通常需要一个Java客户端库,例如`memcached-2.4.2.jar`,以便于在Java应用中与Memcached交互。 2. **安装步骤**: - 下载并解压缩`memcached-1.2.1-win32.zip`到E盘。 - 进入解压后的目录,运行`...

    memcached+nginx使用文档

    通过合理配置和整合Memcached与Nginx,可以构建出一个高效、高可用的Web服务架构,有效提高响应速度,降低服务器压力,提供优质的用户体验。在实际应用中,需要根据具体业务场景进行灵活调整和优化。

    memcached的细节文档

    Cache::Memcached是一个Perl模块,用于简化与memcached服务器的交互,提供了一系列的函数来连接memcached、保存数据、获取数据、删除数据和执行增一减一操作。 ### memcached的内存存储 - **SlabAllocation机制**...

    hibernate整合memcached需要的jar包

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。而Memcached则是一种分布式内存缓存系统,常用于提高Web应用程序的性能,通过缓存数据库查询结果来...

    linux memcached安装

    假设您已经将包含Memcached客户端的应用程序(如enshopcache)部署到Tomcat的`webapps`目录下,接下来需要配置相关的Spring配置文件`spring-cache-service.xml`以便让应用程序能够正确地连接到Memcached服务。...

    Memcached spring 的集成

    - 引入SSM配置:`&lt;import resource="classpath:simplesm-context.xml"&gt;`引入Simple Spring Memcached(SSM)的核心配置,这是一个基于AOP的Memcached客户端,用于处理缓存操作。 5. **缓存注解**: - 使用`@...

Global site tag (gtag.js) - Google Analytics