ubuntu下就是方便啊。
直接apt-get install memcached
memcached -d -m 500 -p 11211 -u root -l 192.168.0.11
服务启动
说明
-m表示给多少内存给memcache
-p 端口
-u 指定用户执行身份
-d 守护进程模式
本地查看
telnet 192.168.0.11 11211
进入以后敲入
stats
下载java操作memcache客户端
https://github.com/gwhalin/Memcached-Java-Client/downloads
将解压缩的jar包全部复制到java工程lib下。
开始搞了。
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class Memcache {
public static MemCachedClient mcc = new MemCachedClient();
static{
// 设置缓存服务器列表,当使用分布式缓存的时,可以指定多个缓存服务器。这里应该设置为多个不同的服务,我这里将两个服务设置为一样的,大家不要向我学习,呵呵。
String[] servers =
{
"192.168.0.11:11211"//可以设置多台机器
// "server3.mydomain.com:1624"
};
// 创建一个Socked连接池实例
SockIOPool pool = SockIOPool.getInstance();
// 向连接池设置服务器和权重
pool.setServers(servers);
// pool.setWeights(weights);
// set some TCP settings
// disable nagle
// set the read timeout to 3 secs
// and don't set a connect timeout
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
// initialize the connection pool
pool.initialize();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
mcc.set("foo", "This is a test String");
System.out.println(mcc.get("foo"));
String bar = mcc.get("foo").toString();
System.out.println(">>> " + bar);
}
}
另外有人纠结set如果设置过期时间比如30秒数据过期到底如何写
特放例子如下
mcc.set("c2", "c", new Date(System.currentTimeMillis() + 30000));//这个无效
mcc.set("d2", "d", new Date( 30000));//这个可以。