Memcached的MemCachedClient设置过期时限

之前做的项目用到了Memcached,用来存储图片验证码.不过需要设置过期时限.代码参照下面.

testMemcache.java

public void testMemcache(){
MemcacheUtil.set("abc","abc", new Date(1*10*1000));
MemcacheUtil.set("bbb","bbb", new Date(System.currentTimeMillis()+8000));</code>

//大于2000为null
try {
Thread.sleep(1*8*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println(MemcacheUtil.get("abc"));
System.out.println(MemcacheUtil.get("bbb"));
try {
Thread.sleep(1*1*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(MemcacheUtil.get("abc"));
System.out.println(MemcacheUtil.get("bbb"));
try {
Thread.sleep(1*1*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(MemcacheUtil.get("abc"));
System.out.println(MemcacheUtil.get("bbb"));
}

MemcacheUtil.java

import java.util.Date;</code>

import com.danga.MemCached.MemCachedClient;

public class MemcacheUtil {
public static MemCachedClient getMemCachedClient() {
return SpringContextUtils.getBean("memcachedClient", MemCachedClient.class);
}

public static boolean set(String key, Object value) {
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
return getMemCachedClient().set(newKey, value);
}

public static boolean set(String key, Object value,Date date) {
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
return getMemCachedClient().set(newKey, value, date);
}

public static Object get(String key) {
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
return getMemCachedClient().get(newKey);
}

public static boolean keyExists(String key) {
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
return getMemCachedClient().keyExists(newKey);
}

public static void clearCache(String...keys) {
for (String key : keys) {
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
getMemCachedClient().delete(newKey);
}
}

public static boolean clearCacheAll() {
return getMemCachedClient().flushAll();
}

/**
* 删除缓存中的数据
* @param key
*/
public static boolean deleteCache(String key){
String newKey = ResourceUtil.getPropertyValue("jdbc.username") + key;
return getMemCachedClient().delete(newKey);
}
}

输出结果:

abc
null
abc
null
null
null