首先去memcached官网下载并安装Memcached
下载安装包:memcached-1.x.x.tar.gz
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure && make && make test && sudo make install(这个步骤执行make test的时候提示有200多个test case,但是只执行了100多个,然后就出错了。。。,后来直接跳过这一步就好了。。。)
安装完了之后,按照官网的说明,使用telnet去测试下,如果telnet没有安装的话,执行下面步骤安装:
yum install telnet-server
yum install telnet
然后编辑vi /etc/xinetd.d/telnet,将里面的disable=yes 改为 no
重启服务 service xinetd restart 即可。
然后在memcached目录下启动服务:memcached -d start -u username
首先用telnet测试下:(default port is 11211)
telnet localhost 11211
就可以进入memcached黑窗口
add key1 0 60 5(回车)
abcde(回车)
这样就插入了数据,key是key1, 有效期60秒, 长度是5个字符,value是abcde
add的时候,如果key是key1的数据已经存在,则会失败(提示:NOT_STORED)
get key1(回车)
查询key为key的数据
set key1 0 60 3
abc
更新key为key1的数据,其他跟add一样,不过set如果发现没有key为key1的数据,就会插入数据,相当于add
replace也是更新,跟set不同的是,如果key对应的数据不存在,则不会插入数据,会提示 NOT_STORED,成功会提示STORED
delete key1
删除key为key1的数据。
下面是使用java的测试:(使用memcached-java-client)
下载需要的jar:
maven方式:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tch.test</groupId> <artifactId>memcached</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>memcached</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.whalin</groupId> <artifactId>Memcached-Java-Client</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency> </dependencies> </project>
https://github.com/gwhalin/Memcached-Java-Client/downloads
共四个jar:commons-pool java_memcached-release slf4j-api slf4j-simple
然后写测试类:
import java.util.Date; import com.whalin.MemCached.MemCachedClient; import com.whalin.MemCached.SockIOPool; public class MemCached { protected static MemCachedClient mcc = new MemCachedClient(); protected static MemCached memCached = new MemCached(); static { String[] servers = { "localhost:11211" }; Integer[] weights = { 3 }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setWeights(weights); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaxIdle(1000 * 60 * 60 * 6); pool.setMaintSleep(30); pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); pool.initialize(); } protected MemCached() { } public static MemCached getInstance() { return memCached; } public boolean add(String key, Object value) { return mcc.add(key, value); } public boolean add(String key, Object value, Date expiry) { return mcc.add(key, value, expiry); } public boolean replace(String key, Object value) { return mcc.replace(key, value); } public boolean replace(String key, Object value, Date expiry) { return mcc.replace(key, value, expiry); } public boolean delete(String key) { return mcc.delete(key); } public Object get(String key) { return mcc.get(key); } public static void main(String[] args) { System.out.println("begin getInstance ...."); MemCached cache = MemCached.getInstance(); cache.add("key1", 18); System.out.println("finish getInstance ...."); System.out.println("key1 get value : " + cache.get("key1")); } }
然后把jar包以及测试类传到linux上面(把jar包都放到lib文件夹下)
编译:
javac -classpath ./lib/*:$CLASSPATH MemCached.java
执行:
java -classpath ./lib/*:$CLASSPATH MemCached
就可以看到结果啦。。。