超简单使用MemCached

阅读本文的前提是,你已经安装或者使用了MemCached,或具有相关的基本知识。

今天要介绍的是Simple-Spring-Memcached,它封装了对MemCached的调用,使MemCached的客户端开发变得超乎寻常的简单,只要一行代码就行:

@ReadThroughAssignCache(assignedKey = "VETS", expiration = 300, namespace = "NELZ")

是不是很神奇?这行代码指定了MemCached的key,过期时间和命名空间。假设你的MemCached服务器IP是:196.168.10.101,端口是:12000,那么在数据调用的配置文件中只要加上下面配置代码就可以了:

 

复制代码
  
  
1 < import resource ="classpath:simplesm-context.xml" />
2
3
4
5 < bean id ="memcachedConnectionBean" class ="net.nelz.simplesm.config.MemcachedConnectionBean" >
6
7 < property name ="consistentHashing" value ="true" />
8
9 < property name ="nodeList" value ="196.168.10.101:12000" />
10
11 </ bean >
复制代码

 

 

从simplesm-context.xml的内容中,可以看出它所封装的类和方法:

 

复制代码
  
  
1 < bean id ="memcachedClientFactory" class ="net.nelz.simplesm.config.MemcachedClientFactory" >
2
3 < property name ="bean" ref ="memcachedConnectionBean" />
4
5 </ bean >
6
7
8
9 < bean id ="memcachedClient" factory-bean ="memcachedClientFactory" factory-method ="createMemcachedClient" />
10
11
12
13 < bean id ="methodStore" class ="net.nelz.simplesm.aop.CacheKeyMethodStoreImpl" />
14
15
16
17 < bean id ="net.nelz.simplesm.DefaultKeyProvider" class ="net.nelz.simplesm.impl.DefaultKeyProvider" >
18
19 < property name ="methodStore" ref ="methodStore" />
20
21 </ bean >
22
23
24
25 < bean id ="readThroughSingleCache" class ="net.nelz.simplesm.aop.ReadThroughSingleCacheAdvice" >
26
27 < property name ="cache" ref ="memcachedClient" />
28
29 < property name ="methodStore" ref ="methodStore" />
30
31 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
32
33 </ bean >
34
35 < bean id ="readThroughMultiCache" class ="net.nelz.simplesm.aop.ReadThroughMultiCacheAdvice" >
36
37 < property name ="cache" ref ="memcachedClient" />
38
39 < property name ="methodStore" ref ="methodStore" />
40
41 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
42
43 </ bean >
44
45 < bean id ="readThroughAssignCache" class ="net.nelz.simplesm.aop.ReadThroughAssignCacheAdvice" >
46
47 < property name ="cache" ref ="memcachedClient" />
48
49 < property name ="methodStore" ref ="methodStore" />
50
51 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
52
53 </ bean >
54
55 < bean id ="updateSingleCache" class ="net.nelz.simplesm.aop.UpdateSingleCacheAdvice" >
56
57 < property name ="cache" ref ="memcachedClient" />
58
59 < property name ="methodStore" ref ="methodStore" />
60
61 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
62
63 </ bean >
64
65 < bean id ="updateMultiCache" class ="net.nelz.simplesm.aop.UpdateMultiCacheAdvice" >
66
67 < property name ="cache" ref ="memcachedClient" />
68
69 < property name ="methodStore" ref ="methodStore" />
70
71 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
72
73 </ bean >
74
75 < bean id ="updateAssignCache" class ="net.nelz.simplesm.aop.UpdateAssignCacheAdvice" >
76
77 < property name ="cache" ref ="memcachedClient" />
78
79 < property name ="methodStore" ref ="methodStore" />
80
81 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
82
83 </ bean >
84
85 < bean id ="invalidateSingleCache" class ="net.nelz.simplesm.aop.InvalidateSingleCacheAdvice" >
86
87 < property name ="cache" ref ="memcachedClient" />
88
89 < property name ="methodStore" ref ="methodStore" />
90
91 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
92
93 </ bean >
94
95 < bean id ="invalidateMultiCache" class ="net.nelz.simplesm.aop.InvalidateMultiCacheAdvice" >
96
97 < property name ="cache" ref ="memcachedClient" />
98
99 < property name ="methodStore" ref ="methodStore" />
100
101 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
102
103 </ bean >
104
105 < bean id ="invalidateAssignCache" class ="net.nelz.simplesm.aop.InvalidateAssignCacheAdvice" >
106
107 < property name ="cache" ref ="memcachedClient" />
108
109 < property name ="methodStore" ref ="methodStore" />
110
111 < property name ="defaultKeyProvider" ref ="net.nelz.simplesm.DefaultKeyProvider" />
112
113 </ bean >
114
115  
复制代码

 

 

Simple-Spring-Memcached还提供了一个例子,在spring的petClinic例子中加入了几行代码,就实现了对MemCached的调用:

 

复制代码
  
  
1 import net.nelz.simplesm.annotations.ReadThroughAssignCache;
2
3   import net.nelz.simplesm.annotations.ReadThroughSingleCache;
4
5 @ReadThroughAssignCache(assignedKey = " VETS " , expiration = 300 , namespace = " NELZ " )
6
7 public Collection < Vet > getVets() {
8
9 System.out.println( " \n ! ! !Gonna wait a bit: " + new Date() + " \n " );
10
11 try {
12
13 Thread.sleep( 4000 );
14
15 } catch (Exception ex) {}
16
17 return sessionFactory.getCurrentSession().createQuery( " from Vet vet order by vet.lastName, vet.firstName " ).list();
18
19 }
20
21  
复制代码

 

 

为了加强测试的效果,在第一次读取数据时,故意停顿了一下(sleep)。

夜深了,大家也应该sleep了吧:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java连接和使用Memcached(内存缓存数据库)在Windows操作系统上进行如下步骤: 1. 首先,确保你已经在Windows上安装了Java开发环境(JDK)和Memcached服务。你可以从官方网站上下载并安装它们。 2. 打开Memcached服务:在Windows命令提示符中,输入`memcached -d start`命令来启动服务。这将在默认端口(11211)上启动Memcached服务。 3. 在Java代码中添加对Memcached客户端库的依赖。你可以使用一些流行的Java库(如Spymemcached或Xmemcached)来连接和操作Memcached。 4. 在Java代码中创建Memcached客户端连接对象。这个对象将被用来执行与Memcached的交互操作,比如存储和获取数据。示例代码如下: ```java import net.spy.memcached.MemcachedClient; // 创建连接对象 MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211)); ``` 5. 使用创建的Memcached客户端对象进行相关操作。例如,你可以使用`set`方法来存储数据,并使用`get`方法来获取已存储的数据。示例代码如下: ```java // 存储数据 memcachedClient.set("key", 3600, "value"); // 获取数据 Object value = memcachedClient.get("key"); System.out.println(value); ``` 6. 最后,在代码结束时关闭Memcached客户端连接。这可以通过调用`shutdown`方法来实现。示例代码如下: ```java // 关闭连接 memcachedClient.shutdown(); ``` 通过遵循以上步骤,你可以在Windows上使用Java连接和使用Memcached进行数据缓存操作。记得在开发过程中,要检查和处理异常情况,以确保代码的正确执行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值