simple-spring-memcached缓存搭建

项目中使用的缓存经常是知道使用,没有试过搭建起它。刚好这次自己的毕业可以用来搭建缓存。其他不多说了,直接看操作吧。首先在pom.xml中依赖simple-spring-memcached的架包。

1      <dependency>
2             <groupId>com.google.code.simple-spring-memcached</groupId>
3             <artifactId>xmemcached-provider</artifactId>
4             <version>3.3.0</version>
5         </dependency>

在项目中增加一个applicationContext-ssm.xml文件,里面的内容为:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 6         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
 7         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
 8         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
 9         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
10
11     <import resource="classpath:simplesm-context.xml" />
12     <aop:aspectj-autoproxy />
13     <context:annotation-config />
14
15     <bean name="defaultMemcachedClient" class="com.google.code.ssm.CacheFactory">
16         <property name="cacheClientFactory">
17             <bean class="com.google.code.ssm.providers.xmemcached.MemcacheClientFactoryImpl" />
18         </property>
19         <property name="addressProvider">
20             <bean class="com.google.code.ssm.config.DefaultAddressProvider">
21                   <property name="address" value="127.0.0.1:11211" />
22             </bean>
23         </property>
24         <property name="configuration">
25             <bean class="com.google.code.ssm.providers.xmemcached.XMemcachedConfiguration">
26                 <property name="consistentHashing"><!--consistentHashing属性定义了缓存节点的查找方法: 是否使用哈希 -->
27                     <value>true</value>
28                 </property>
29                 <property name="connectionPoolSize">
30                     <value>1</value>
31                 </property>
32                 <property name="optimizeGet">
33                     <value>false</value>
34                 </property>
35                 <property name="optimizeMergeBuffer">
36                     <value>false</value>
37                 </property>
38                 <property name="mergeFactor">
39                     <value>50</value>
40                 </property>
41                 <property name="useBinaryProtocol">
42                     <value>true</value>
43                 </property>
44                 <property name="connectionTimeout">
45                     <value>2000</value>
46                 </property>
47                 <property name="operationTimeout">
48                     <value>1000</value>
49                 </property>
50                 <property name="enableHeartBeat">
51                     <value>true</value>
52                 </property>
53                 <property name="failureMode">
54                     <value>false</value>
55                 </property>
56             </bean>
57         </property>
58             <!-- 该Memcached配置的Cache名称 一个应用中存在多个Memcached时,各个配置的cacheName必须不同。如果该值未设,系统默认为default -->
59         <property name="cacheName" value="default" />
60     </bean>
61
62     <bean class="com.google.code.ssm.Settings"><!-- 这玩意儿在3.2 后,文档可以指定顺序 以及 拦截器 前后执行 - -!暂时没用过,加上不报错 -->
63         <property name="order" value="500" />
64     </bean>
65 </beans>

最后在在代码中,增加

 1     /**
 2      * 根据订单号获取订单信息
 3      * @param orderNum
 4      * @return
 5      */
 6     @ReadThroughSingleCache(namespace = "test", expiration = 30000)
 7     public Order getOrder(@ParameterValueKeyProvider String orderNum) {
 8         System.out.println("缓存没有命中");
 9         return this.orderDao.getOrder(orderNum);
10     }

其中有许多注解的使用,这里就不一一说了。其中缓存使用的是我本地安装的memcached。项目运行起来,第一次查找订单的时候会打印缓存没有命中的消息,第二次就看不到了。缓存搭建成功。

时间: 2024-08-06 07:55:11

simple-spring-memcached缓存搭建的相关文章

Linux下搭建Memcached缓存系统

首先说下抱歉,博主最近单位经常加班,博客更新有点慢,希望大家理解,草稿箱里存了不少内容,等不忙时候一点点填坑~ 在一般的网站开发学习时候,都会把数据存放在RDBMS(关系型数据库系统(Relational Database Management System)中,服务器程序通过读取RDBMS来取得数据显示在页面上.这在我们以往编写练习项目时候,是没有任何问题的.根据木桶理论,一只水桶能装多少水取决于它最短的那块木板,在实际的网站开发中,随着数据量的增大,访问的集中,就会出现RDBMS的负担加重.

memcached高缓存搭建

memcached高缓存搭建搭建服务端和客户端,让服务端去链接客户端web客户端:192.168.247.161服务端:192.168.247.160 [[email protected] ~]# hostnamectl set-hostname client [[email protected] ~]# su [[email protected] ~]# [[email protected] ~]# hostnamectl set-hostname server [[email protect

受教了,memcache比较全面点的介绍,受益匪浅,适用memcached的业务场景有哪些?memcached的cache机制是怎样的?在设计应用时,可以通过Memcached缓存那些内容?

基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

部署网站运行平台LNMP + Memcached缓存

部署网站运行平台LNMP + Memcached缓存  *本实验的LNMP和Memcached都安装在同一台服务器上 *Nginx   提供网站服务 *MySQL   提供数据库服务 *PHP    提供动态网站编程语言 *Memcached 提供数据缓存(通过降低对Database的访问来加速web应用程序) 一.搭建LNMP平台(源码包安装) Linux+Nginx+Mysql+PHP(perl) 1)基本环境准备 安装"开发工具"和"开发库""Dev

memcached缓存服务器介绍及其安装过程

Memcache是什么? memcached是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件.现在 已成为mixi.hatena.Facebook.Vox.LiveJournal等众多服务中提高Web应用扩展性的重要因素. Memcached是一款开源.高性能.分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序.许多Web应用都将数据保存到RDBMS中,应用服

magent——memcached缓存代理服务器

memcached分布式缓存 我们使用PHP连接多台memcached服务器,做分布式缓存,实现如下: $memcache = new Memcache; $memcache->addServer('192.168.252.134', 11211); $memcache->addServer('192.168.252.134', 11212); $memcache->addServer('192.168.252.134', 11213); for ($i = 0; $i < 100

memcached 缓存数据库应用实践

1.1 数据库对比 缓存: 将数据存储到内存中,只有当磁盘胜任不了的时候,才会启用缓存   缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务. 数据库: mysql(关系型数据库,能够保证数据一致性,保证数据不丢失,当因为功能太多,导致性能不高) ===数据参考 缓存数据库:  memcache redis(非关系型数据库,性能极高,但不保证数据完整性) === 业务的数据提供者           memcachedb 会将内存的数据写入到磁盘中   redis 主要工

Memcached缓存Session(不建议)

本文源链接地址:https:www.93bok.com 实验环境: Centos6.5minimal 64位系统 服务器IP:192.168.10.22 说明: 1. LNMP+Memcached环境搭建不再演示,可参考之前文章 2. 相信大家也看到了,文章的后边加了(不建议)的后缀,说说原因吧: A.如果用memcached存储Session,那么当memcached集群发生故障(比如内存溢出)或者维护(比如升级.增加或减少服务器)时,用户会无法登录,或者被踢掉线 B.memcached 的回