`

java-memcached使用实例

 
阅读更多
package com.memcache;

import java.util.List;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
 * 使用memcached的缓存测试类.
 * 
 * @author 阿蜜果
 */
public class MemcachedTest {
	// 创建全局的唯一实例
	protected static MemCachedClient mcc = new MemCachedClient();

	protected static MemcachedTest memCached = new MemcachedTest();

	// 设置与缓存服务器的连接池
	static {
		// 服务器列表和其权重
		String[] servers = { "127.0.0.1:11211" };
		Integer[] weights = { 3 };

		// 获取socket连接池的实例对象
		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);

		// 设置TCP的参数,连接超时等
		pool.setNagle(false);
		pool.setSocketTO(3000);
		pool.setSocketConnectTO(0);

		// 初始化连接池
		pool.initialize();

		// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
		// mcc.setCompressEnable(true);
		// mcc.setCompressThreshold(64 * 1024);
	}

	/**
	 * 保护型构造方法,不允许实例化
	 */
	protected MemcachedTest() {

	}

	/**
	 * 获取唯一实例.
	 * 
	 * @return
	 */
	public static MemcachedTest getInstance() {
		return memCached;
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @return 在缓存中若该key不存在,并成功添加返回true,否则将返回false
	 */
	public boolean add(String key, Object value) {
		return mcc.add(key, value);
	}

	/**
	 * 添加一个键值对到缓存中.
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @param expires
	 *            超时时间
	 * @return 在缓存中若该key不存在,并成功添加返回true,否则将返回false
	 */
	public boolean add(String key, Object value, Date expires) {
		return mcc.add(key, value, expires);
	}

	/**
	 * 将某个键的值改变成新值,首先需要保证该键存在.
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @return 成功返回true,失败返回false
	 */
	public boolean replace(String key, Object value) {
		return mcc.replace(key, value);
	}

	/**
	 * 将某个键的值改变成新值,首先需要保证该键存在.
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @param expires
	 *            超时时间
	 * @return 成功返回true,失败返回false
	 */
	public boolean replace(String key, Object value, Date expires) {
		return mcc.replace(key, value, expires);
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * 
	 * @param key
	 * @param value
	 * @return 成功返回true,否则返回false
	 */
	public boolean set(String key, Object value) {
		return mcc.set(key, value);
	}

	/**
	 * 添加一个指定的值到缓存中,并设置其超时时间.
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @param expires
	 *            超时时间
	 * @return 成功返回true,否则返回false
	 */
	public boolean set(String key, Object value, int expires) {
		return mcc.set(key, value, expires);
	}

	/**
	 * 根据指定的关键字获取对象.
	 * 
	 * @param key
	 * @return 返回value
	 */
	public Object get(String key) {
		return mcc.get(key);
	}

	/**
	 * 将指定key的value值+1,将返回最后的value值
	 * 
	 * @param key
	 * @return 返回最后的value值
	 */
	public long incr(String key) {
		return mcc.incr(key);
	}

	/**
	 * 将指定key的value值-1,将返回最后的value值
	 * 
	 * @param key
	 * @return 返回最后的value值
	 */
	public long decr(String key) {
		return mcc.decr(key);
	}

	/**
	 * 测试方法
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		MemcachedTest cache = MemcachedTest.getInstance();
		cache.set("count", 1234);
		System.out.println("count=" + cache.get("count"));
		boolean flag = cache.add("schedule_5", "55");
		System.out.println("flag=" + flag);
		System.out.println("schedule_2=" + cache.get("schedule_2"));
		Bean bean = new Bean(1, "bean1", new Date());
		cache.set("bean", bean);
		Bean cachedBean = (Bean) cache.get("bean");
		System.out.println(cachedBean);
		Map map = new HashMap();
		map.put("key1", "value1");
		map.put("key2", "value2");
		cache.set("map", map);
		Map cachedMap = (Map) cache.get("map");
		cachedMap.put("key3", "value3");
		System.out.println(cachedMap);
		List list = new ArrayList();
		list.add(1);
		list.add(2);
		list.add(bean);
		cache.set("list", list);
		List cachedList = (List) cache.get("list");
		System.out.println(cachedList);
	}
}

class Bean implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -2947079639200259035L;
	int id;
	String name;
	Date date;

	public Bean(int id, String name, Date date) {
		this.id = id;
		this.name = name;
		this.date = date;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public String toString() {
		return id + "|" + name + "|" + date.toString();
	}

}
分享到:
评论

相关推荐

    java使用memcached的实例

    javaWeb使用memcached的实例

    Memcached java的使用实例

    Memcached java的使用实例。数据库的缓存工具memcached

    Memcached实例与文档

    Memcached实例与文档Memcached实例与文档Memcached实例与文档Memcached实例与文档

    memcached windows java 测试 实例

    一个完整的memcached使用实例,memcached安装在windows上,使用java代码测试memcached是否安装部署成功,包括编译好的exe 及 jar文件,使用请看readme.txt文件

    memcached 的简单java实例

    java 开发的一个简单的memcached实例

    java Memcached Spring整合代码实例

    java Memcached客户端代码,整合到Spring,提供Util工具类 代码片段: public class MemcachedUtils { private static boolean setExp(String key, Object value, Date expire) { boolean flag = false; try { ...

    memcached缓存使用演示

    memcached缓存使用演示小项目,缓存服务器的搭建,增删改查缓存

    java 使用memcached以及spring 配置memcached完整实例代码

    本篇文章主要介绍了java 使用memcached以及spring 配置memcached完整实例代码,具有一定的参考价值,有兴趣的可以了解一下

    Memcached Demo 01.zip

    本工程为Java工程,注释详尽地实现了Java对Memcached的操作,欢迎下载

    memcached与JAVA实例文档

    本实例包括memcached所有使用文档和实例,还有安装程序的说明与客户端

    JAVA上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    Memcached与JAVA实例与文档

    有实例,window环境下安装包,安装文档,使用文档,LINUX下说明文档等等,基本上所有的东西都全了.如果还有少的,请大家帮忙补充谢谢.如果是在WINDOWS下测试,安装一下安装包然后执行实例就可以了,命令窗口不要...

    memcached java简单实例

    NULL 博文链接:https://stranger2008.iteye.com/blog/2042784

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    memcached1

    我们将java_memcached-release_1.6.zip解压后的目录中的java_memcached-release_1.6.jar文件复制到java项目的lib目录下,然后我们来编写代码,比如我提供的一个应用类如下: package utils.cache; import java....

    plugin-memcached

    边界 Memcached 插件从 memcached 实例收集指标。 请参阅视频。先决条件操作系统Linux 视窗智能操作系统操作系统支持的v v v v 运行节点.js Python Java必需的+ 插件设置没有任何插件配置字段字段名称描述来源显示在...

    springboot+memcached+mybatis+shiro+webservice聚合工程架构

    此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式...请把解压后的java_memcached-release_2.6.3.jar和commons-pool-1.5.6.jar 安装到本地maven库或者直接引入项目,在阿里镜像里拉不到这两个包。

    Java 操作Memcach实例

    项目操作方法有详细注释说明 项目为maven工程配置的memcached所需jar包。 工具类中包含memcached所有操作方法实例及memcached日志操作日志记录。

    MemCached 缓存系统配置说明

    这里需要解释说明一下,很多开发者觉得Memcached是一种分布式缓存系统,但是其实Memcached服务端本身是单实例的,只是在客户端实现过程中可以根据存储的主键做分区存储,而这个区就是Memcached服务端的一个或者多个...

Global site tag (gtag.js) - Google Analytics