公司支付系统要用memcached存放数据。初步研究了一下,以下关于memcached是神马之类的理论性问题就不说了,大家百度以下就知道,主要讲讲如何操作使用。
- memcached在CentOS环境中的安装
- 我们得有CentOS系统环境,我这里用的是VMware虚拟机模拟的CentOS环境。保证与主机网络通畅。
- 去libevent官网下载libevent-1.4.14b-stable.tar.gz包
- # tar zxf libevent-1.4.14b-stable.tar.gz
- # cd libevent-1.4.14b-stable.tar.gz
- # ./configure --prefix=/user/local/libevent/
- # make
- # make install
- 去memcached官网下载memcached-1.4.0.tar.gz包
- 输入命令 # tar zxf memcached-1.4.0.tar.gz
- # cd memcached-1.4.0.tar.gz
- ./configure --prefix=/user/local/memcached/ --with-libevent=/user/local/libevent
- # make
- # make install
- memcached的使用
- 启动memcached服务
memcached -l 192.168.7.36 -d -p 11212 -u nobody -m 1024
- 使用memcached存储数据及获取数据
set test 0 0 11 just a test STORED get test VALUE test 0 11 just a test END
- xmemcached集成spring的配置及使用
- xmemcached官方网下载memcached-1.4.0.tar.gz
- slf4j官方网下载slf4j-1.5.6.zip
- 分别取出xmemcached-1.3.3.jar、slf4j-api-1.5.6.jar和slf4j-log4j12-1.5.6.jar三个jar包加入lib
- 在spring的xml配置文件中设置memcached的基本参数
<bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown"> <property name="servers"> <value>192.168.7.36:11212</value> </property> </bean> <bean id="testController" class="com.ec.controller.TestController"> <property name="methodNameResolver"> <bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"> <property name="mappings"> <props> <prop key="/test.do">test</prop> </props> </property> </bean> </property> <property name="memcachedClient" ref="memcachedClient" /> </bean>
- 在程序中向memcached存取数据
TestCotroller中 private MemcachedClient memcachedClient; public void setMemcachedClient(MemcachedClient memcachedClient){ this.memcachedClient = memcachedClient; } public MemcachedClient getMemcachedClient(){ return memcachedClient; } public ModelAndView test(...)
MemcachedClient.flushAll(); if (!MemcachedClient.get("hello", 0, "world")) { System.err.println("set error"); } if (!MemcachedClient.add("hello", 0, "dennis")) { System.err.println("Add error,key is existed"); } if (!MemcachedClient.replace("hello", 0, "dennis")) { System.err.println("replace error"); } MemcachedClient.append("hello", " good"); MemcachedClient.prepend("hello", "hello "); String name = MemcachedClient.get("hello", new StringTranscoder()); System.out.println(name); MemcachedClient.deleteWithNoReply(“hello”);
}