spring memcache 缓存
application-cache.xml的配置
在web.xml中引入了这个配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath*:application-cache.xml,
</param-value>
</context-param>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd"> <!-- 引入properties配置文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath*:application.properties</value>
</list>
</property>
</bean>
<!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在spring主配置文件中才会生效 -->
<cache:annotation-driven /> <!-- 缓存管理 -->
<bean name="cacheManager" class="com.google.code.ssm.spring.ExtendedSSMCacheManager">
<property name="caches">
<set>
<bean class="com.google.code.ssm.spring.SSMCache">
<constructor-arg name="cache" index="0" ref="MyCache" />
<!-- 5 minutes -->
<constructor-arg name="expiration" index="1" value="${default.memcache.expiration}" />
<!-- @CacheEvict(..., "allEntries" = true) doesn't work -->
<constructor-arg name="allowClear" index="2" value="false" />
</bean>
</set>
</property>
</bean> <!-- 缓存配置 -->
<bean name="MyCache" class="com.google.code.ssm.CacheFactory">
<property name="cacheName" value="MyCache" />
<property name="cacheClientFactory" ref="cacheClientFactory"/>
<property name="addressProvider">
<bean class="com.google.code.ssm.config.DefaultAddressProvider">
<property name="address" value="${default.memcache.address}" />
</bean>
</property>
<property name="configuration">
<bean class="com.google.code.ssm.providers.CacheConfiguration">
<!-- 是否使用哈希 -->
<property name="consistentHashing" value="true" />
</bean>
</property>
<property name="defaultSerializationType"
value="#{T(com.google.code.ssm.api.format.SerializationType).valueOf(@defaultSerializationTypeAsString)}" />
</bean> <bean name="cacheClientFactory" class="com.google.code.ssm.providers.xmemcached.MemcacheClientFactoryImpl" /> <bean name="defaultSerializationTypeAsString" class="java.lang.String">
<constructor-arg value="#{systemProperties['ssm.defaultSerializationType']?:'JSON'}" />
</bean>
</beans>
application.properties的配置 下面那个地址是我本机的地址
#memcached memcache server address
default.memcache.address=192.168.3.11:11211
#expire time unit:seconds
default.memcache.expiration=43200
@Override
@Cacheable(value = "MyCache",key="T(com.base.util.Constant).AREA_FULL_QUERYFORNAV")
public List<Area> queryAllFirstArea(AreaPage page) {
return dao.queryAllFirstArea(page);
}
@Cacheaable的key是唯一的,当第一次访问的时候,会执行dao的方法,第二次访问的时候就不会访问数据库了,访问缓存去了。
/**
* 清空缓存
*/
@Override
@CacheEvict(value = "MyCache",key="T(com.base.util.Constant).AREA_FULL_QUERYFORNAV")
public void clearCache() {
System.out.println("清空缓存成功!!!"); }
@CacheEvict 注解清空缓存,当下次要查询这个key的缓存时,会查询数据库,将查询的结果缓存起来,下次再查询就直接查缓存了。
要使用这个还得安装mecache。我安装的是window版的。mecache下载安装地址.
解压后把里面的所有文件放到一个地方。我放到地方是:E:\mecache
(1)在终端(也即 cmd 命令界面)下输入 E:\memcached\memcached.exe -d install 令名来执行安装!
(2) 再次在终端输入: E:\memcached\memcached.exe -d start 来启动 memcache 服务。(以后 memcached 将作为 windows 的一个服务每次开机时
自动启动。这样服务器端已经安装完毕了)
(3)检验是否安装成功,只需要在 CMD 下输入 telnet 127.0.0.1 11211 就可以知道(memcache 默认端口是 11211)。
现在已经是可以访问的了!!
spring memcache 缓存的更多相关文章
- 注释驱动的 Spring cache 缓存介绍
概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...
- [转]注释驱动的 Spring cache 缓存介绍
原文:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ 概述 Spring 3.1 引入了激动人心的基于注释(an ...
- 注释驱动的 Spring cache 缓存介绍--转载
概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...
- Spring cache 缓存
概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...
- springboot使用memcache缓存
Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
转载自脚本之家 http://www.jb51.net/article/51831.htm 作者:忙碌的松鼠 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层, ...
- memcached基于socket访问memcache缓存服务器
memcached基于socket访问memcache缓存服务器 操作memcache常用三种方法: .memcache基于php_memcache.dll扩展(php扩展) .memcached基于 ...
- phalcon: 缓存片段,文件缓存,memcache缓存
几种缓存,需要用到前端配置,加后端实例配合着用 片段缓存: public function indexAction() { //渲染页面 $this->view->setTemplateA ...
- 01-08-05【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate二级缓存:第三方MemCache缓存
一.准备工作 [1]根据操作系统(位数)选择下载相应版本的MemCache, MemCache的下载和安装,参看: http://www.cnblogs.com/easy5weikai/p/37606 ...
随机推荐
- bat脚本学习
工作需求,写个bat脚本来启动自己的守护进程:bat方面完全空白啊~稍微学习了下,记录下来,后面复习! 直接上代码: 示例一:for字符串切割,切割文本中的字符串: test.txt 文本内容如下: ...
- Winform ComBox模糊查询
一.添加数据源并绑定 List<string> list = new List<string>(); list.Add("张三"); list.Add(&q ...
- ORACLE AWR性能报告和ASH性能报告的解读
数据库的性能分析可分为会话级和系统级:如果确定某个会话存在性能问题,最常见的分析方式是对这个会话做一个SQL_TRACE或者10046事件,通过分析trace文件来定位问题所在.如果无法确定哪个会话性 ...
- 安装 zabbix 时遇到的一个问题
安装 zabbix 2.0.3,到最后阶段,遇到一个问题: PHP bcmath extension missing, php configuration parameter --enable-bc ...
- uoj 55 紫荆花之恋 动态点分治+替罪羊式重构+treap
每插入一个点,直接把它当做重心插入原树,当做是动态点分树一样维护 但这样深度会越来越大,所以我们用类似替罪羊的方法 当树失去平衡时,对子树进行一次点分,保证复杂度 #include <cstdi ...
- 使用curl来调试你的应用
我们在客户端开发过程中总免不了和后端进行api对接,有时候需要对返回的数据格式进行调试,有时候每次运行客户端来发送请求,这个未免效率太低,这里就来介绍一个好用的工具--curl. curl curl是 ...
- android移动开发学习笔记(二)神奇的Web API
本次分两个大方向去讲解Web Api,1.如何实现Web Api?2.如何Android端如何调用Web Api?对于Web Api是什么?有什么优缺点?为什么用WebApi而不用Webservice ...
- 调用ZoomEye API获取信息
最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块urllib,json,os模块. 功能:调用ZoomEye API获取信息 import urllib.requ ...
- SQL中游标的使用--遍历数据逐行更新或删除:相当于for循环
--------------------------------------例子1 单纯的游标-------------------------------- create TABLE Table1 ...
- Python学习日志(一)
1.os - Normal Method: os.name() : os.getcwd(): 给出当前的目录,python当前的工作目录 os.listdir(): 返回 os.remove():删除 ...