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

spring 管理 memcached (方便扩展)

    博客分类:
  • java
阅读更多

 

最近项目中要用到缓存,无意中了解到memcached使用比较广泛,但考虑到以后其它情况(有可能换其它缓存),想了想

 

应该用一个更灵活的方法来管理缓存,经过资料查找和自己耐心调试,最终还是出来了(暂未过多考虑性能)

 

  

有个疑惑:这个客户端的连接池,设置连接的空闲时间短点好(n秒)还是设置时间长点好呢?(n小时)

时间长了,如果并发很大是不是连接很快就满了?

 

 

 

后来我修改了,一个客户端一个配置文件,这样用哪个客户端就只加载对应的配置文件

详请见附件(spring_memcached.zip )。 接口里的方法定义不是太合理,只是提供给有需要的朋友一个思路。

 

暂写了两个客户端的配置一个是官方客户端,一个是xmencached (也是网上找来或者看官方实现)。

 

 

spring配置(代码详见附件(一个接口,两个实现,两个配置文件),具体客户端支持包请自行下载):

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd ">
<!--memcached 客户端***start-->
<bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown">
    <constructor-arg>
        <value>neeaMemcachedPool</value>
    </constructor-arg>
    <property name="servers">
        <list>
            <value>192.168.54.207:12345</value>
            <!--多服务器
             <value>
                192.168.54.207:12346
            </value>
            -->
        </list>
    </property>
	<!--多服务器负载均衡-->
	<!--<property name="weights">
		<value>5,5</value>
	</property>-->
    <property name="initConn">
        <value>20</value>
    </property>
    <property name="minConn">
        <value>10</value>
    </property>
    <property name="maxConn">
        <value>500</value>
    </property>
    <property name="maintSleep">
        <value>30</value>
    </property>
    <property name="nagle">
        <value>false</value>
    </property>
    <property name="maxIdle">
        <value>6000</value>
    </property>
    <property name="socketTO">
        <value>3000</value>
    </property>
</bean>

<!--memcached client-->
<bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient">
    <constructor-arg>
        <value>neeaMemcachedPool</value>
    </constructor-arg>
    <property name="compressEnable">
        <value>true</value>
    </property>
    <property name="compressThreshold">
        <value>4096</value>
    </property>
</bean>
<!--memcached 客户端***end-->

<!--如果换客户端或者换缓存了,在web.mxl里切换加载对应的配置文件即可-->
<bean id="cache" class="com.kanmenzhu.impl.CacheClientImpl">
	<property name="cacheProvider" ref="memcachedClient"/>
</bean>

</beans>

 

分享到:
评论
6 楼 mccxj 2009-12-01  
yishh 写道
还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧

http://code.google.com/p/xmemcached/wiki/Spring_Integration

xmemcached已经提供了spring集成方案~
5 楼 lydawen 2009-12-01  
whaosoft 写道
yishh 写道
还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧

原来是这样 谢谢了 我去查查 ~~


我用一台普通PC CentOS,1.28服务器,官方客户端单线程1秒只能写1000个左右,读稍慢一点点。
4 楼 whaosoft 2009-12-01  
yishh 写道
还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧

原来是这样 谢谢了 我去查查 ~~
3 楼 lydawen 2009-11-30  
yishh 写道
还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧


已经换成xmemcached了,看来之前设计还是有点小道理的。换这个客户端倒是比较轻松了

同时将缓存相关配置成单独配置文件,这样用哪个就在web.xml里配置加载哪个
2 楼 yishh 2009-11-29  
还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧
1 楼 lydawen 2009-11-29  
<p><span style="text-decoration: line-through;">附件文件名spring居然附件写成了sprint....不改了</span> <br><br>定义了一个调用缓存客户端的接口,这样使用缓存进行操作就变成调用这个接口的实现了。以后要改缓存服务器或客户端了就只要添加实现并修改spring配置。 <br>不知这样设计是否合理……</p>
<p> </p>

相关推荐

    simple-spring-memcached集成memcache

    在IT行业中,Spring框架是Java应用开发中的一个关键组件,它提供了一整套服务和工具,使得开发者可以更高效地构建可维护、可扩展的应用。而Memcached则是一种高性能、分布式内存对象缓存系统,常用于缓解数据库负载...

    simple-spring-memcached(ssm) 和spring的集成

    通过 `SSM`,开发者可以方便地在 `Spring` 应用程序中利用 `Memcached` 的高效缓存能力,提高应用的性能和响应速度。本文将详细介绍如何在 `Spring` 项目中配置和使用 `SSM`,以及其主要功能和优势。 **SSM 概述** ...

    spring整合memcached

    Spring提供了一套完整的集成机制,使得开发者能够方便地在Java应用中使用Memcached。 整合步骤通常分为以下几个阶段: 1. **添加依赖**:在项目中引入Memcached和Spring的对应依赖。如果你使用的是Maven,可以在...

    spring memcached 所需jar

    当我们将Memcached与Spring集成时,我们可以利用Spring的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性来更方便地管理和使用缓存服务。 在"spring memcached 所需jar"这个场景中,我们关注...

    simple-spring-memcached-3.1.0-dist

    "simple-spring-memcached-3.1.0-dist" 是一个针对Spring框架的缓存扩展,它使得在Spring应用中集成和使用Memcached成为可能。Memcached是一种高性能的分布式内存对象缓存系统,用于减少数据库负载,提高应用程序的...

    simple-spring-memcached统一缓存的使用实例[整理].pdf

    这里,`MemcachedClientFactoryBean`用于创建Memcached客户端,`CaffeineCacheManager`作为Spring的缓存管理器,负责管理和维护缓存。`aop:config`部分则是启用AOP代理,使得缓存注解生效。 总结起来,Simple-...

    maven-springmvc-mybatis-memcached

    MyBatis-Spring整合后,可以利用Spring的事务管理功能,简化数据库操作。 4. Memcached:Memcached是一个基于键值对的缓存系统,适合存储小块的、临时的数据。在Web应用中,它可以缓存数据库查询结果,减少数据库...

    hibernate4+spring4+memcached 工程

    【标题】"hibernate4+spring4+memcached 工程"是一个集成项目,它结合了三个关键的开源技术,旨在提供一个高效且可扩展的后端数据管理解决方案。Hibernate 4是Java领域中最流行的ORM(对象关系映射)框架,它允许...

    memcache也spring,hibernate的配置

    xmemcache-spring是其与Spring框架的整合,提供Spring的缓存抽象,使得在Spring应用中配置和使用Memcached更方便。 7. **配置步骤**: - 首先,在pom.xml中添加所需的依赖,包括memcached、hibernate-memcached和...

    memcached相关资料及spring配置文件和封装接口和类

    **Spring** 集成 Memcached 可以让应用更方便地管理和使用缓存服务。在描述中提到的集成配置文件(可能名为 `spring-memcached.xml` 或类似的名称),通常会定义一个 Memcached 的 Bean,设置服务器地址、超时时间等...

    cpp-twemproxy一个memcached和redis的快速轻量级代理

    7. **易于扩展**:由于其小巧且模块化的设计,twemproxy方便添加新的功能或进行定制,以适应不同业务需求。 在实际使用twitter-twemproxy-40fde21这个版本时,你需要了解以下操作步骤: 1. **编译安装**:下载源...

    SSM与memcached整合项目

    SSM与Memcached整合是一个常见的Java Web开发技术组合,用于提升应用的性能和可扩展性。SSM是指Spring、Spring MVC和MyBatis三个框架的集成,而Memcached则是一种高性能、分布式内存对象缓存系统。这个项目是将这三...

    memcaChed java client jar包

    在实际应用中,Java开发者通常会结合Spring框架来集成Memcached,这样可以更方便地管理和配置缓存。Spring提供了一个名为`Spring-Data-Memcached`的模块,它简化了Memcached的使用,包括事务管理、缓存策略和生命...

    SSM整合memcached缓存

    SSM整合Memcached缓存是将Spring、SpringMVC和MyBatis这三大Java Web开发框架与Memcached相结合,以实现高效的数据缓存功能。Memcached是一款轻量级的分布式内存对象缓存系统,用于减少数据库负载,提高应用程序性能...

    memcached+tomcat的session共享

    - 扩展性:memcached支持多节点,便于扩展和负载均衡。 - 降低单点故障:如果某台Tomcat服务器宕机,session数据不会丢失,因为它们在memcached中是持久化的。 然而,这种方式也存在一些潜在的问题: - 安全性:...

    java连接memcached示例代码

    此外,Java连接Memcached还可以结合Spring框架,利用`MemcachedTemplate`或`SimpleCacheManager`实现更高级别的缓存管理和操作。在分布式环境中,多个应用实例可以通过一致性哈希策略共享同一份缓存,提高系统的可...

    spring+struts+mybatis+security+memcached+GBAC权限架构开源项目

    spring+struts+mybatis+security+memcached+GBAC权限架构开源项目, 懂的自己下载看,不懂的就去问懂的,还有就是有的人说上一个版本的代码有点乱,我只能说你站在你的角度看,我站在我的角度写,说明我们有代沟,大概如此...

    memcached客户端(三种客户端)

    它还提供了丰富的特性,如支持完整的协议、客户端分布、节点权重设置、动态增删节点、JMX支持、Spring和Hibernate-memcached集成、连接池功能以及良好的可扩展性。 **推荐与建议** 考虑到官方客户端的新版本在性能...

Global site tag (gtag.js) - Google Analytics