Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度,基于一个存储键/值对的hashmap。
下载并安装memcached
安装命令是:D:/memcached/memcached.exe -d install
启动命令: c:/memcached/memcached.exe -d start
通过命令把memcache添加到服务里:memcached.exe -d install
在项目中的使用:
创建demo1,不设置过期时间
Memcached地址和端口号 172.0.0.1:11211 所需jar包:commons-pool-1.5.6.jar
java_memcached-release_2.6.3.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.1.jar
//编写实例
public class Demo1 {
public static void main(String[] args) {
//获取socke连接池的实列对象
SockIOPool pool=SockIOPool.getInstance();
//服务器列表和其权重
String[] servers={"127.0.0.1:11211"};
Integer[] weights={3};
//设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);
//初始化连接池
pool.initialize();
MemCachedClient client = new MemCachedClient();
//添加
client.add("school", "学校");
}
}
测试代码:
public class Test1 {
public static void main(String[] args) {
//获取socke连接池的实列对象
SockIOPool pool=SockIOPool.getInstance();
//服务器列表和其权重
String[] servers={"127.0.0.1:11211"};
Integer[] weights={3};
//设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);
//初始化连接池
pool.initialize();
MemCachedClient client = new MemCachedClient();
//取值
Object object = client.get("school");
System.out.println(object);
}
}
创建demo2,设置过期时间
Jar包:memcached-2.5.jar
存值:client.set("name", 3600,"笨笨");
第一个参数:键(key)
第二个参数:过期时间(单位是秒)
第三个参数:要设置缓存中的对象(value)如果没有插入,有则修改
public class Demo2 {
public static void main(String[] args) {
//实现 IP 套接字地址(IP 地址 + 端口号)
InetSocketAddress ins = new InetSocketAddress("127.0.0.1",11211);
try {
MemcachedClient client = new MemcachedClient(ins);
client.add("dog", 3600, "笨笨");
//当时间过期后再次取值时为null
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试代码:
public class Test1 {
public static void main(String[] args) {
实现 IP套接字地址(IP 地址 + 端口号)
InetSocketAddress ins = new InetSocketAddress( "127.0.0.1" ,11211);try {
MemcachedClientclient =new MemcachedClient(ins);
//获取
Objectobject = client.get("dog");
System.out.println(object);
}catch (Exceptione) {
e.printStackTrace();
}
}
}
效果: