import java.io.Serializable;
import java.text.DateFormat;
import java.util.Date;
import java.util.Map; import com.danga.MemCached.MemCachedClient;
import com.pt.util.memcached.MemcachedTool; public class testMemcached { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MemCachedClient mc = MemcachedTool.getInstance();
//(1000 * 129是本地时间和服务器端时间的差值)
Date failDate = new Date(System.currentTimeMillis() - 1000 * 129 + 10000);
System.out.println(failDate);
mc.set("c", "230",failDate); //如果有相同的key值,则替换掉原先的值 失效时间(以服务器的时间为准)
Boolean add = mc.add("b", "110"); //如果存在同样key值,则返回false
String str = (String)mc.get("c");
String[] keys = {"a","b"};
Map strs = mc.getMulti(keys); //获取多个值 返回结果是一个数组
System.out.println("get value from memcached: " + str);
mc.delete("c"); //删除key System.out.println("test add method: " + add);
System.out.println("get params: " + strs); //写入对象
user men = new user();
men.setId(1907);
men.setName("潘腾");
boolean setObj = mc.set("user", men);
user getMen = (user)mc.get("user");
System.out.println(getMen);
} } class user implements Serializable{
String name;
int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "name: " + name + " id: " + id;
} }

testMain

 package com.pt.util.memcached;

 import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool; public class MemcachedTool {
private static MemCachedClient memcacheClient = null; private MemcachedTool(){ } public static MemCachedClient getInstance(){
if(memcacheClient == null){
memcacheClient = new MemCachedClient();
memcacheClient.setDefaultEncoding("UTF-8"); //写入缓存的编码格式 }
return memcacheClient;
} static{
String[] serversArray = {"192.168.65.221:13220"};
Integer[] weight = {1};
SockIOPool connPool = SockIOPool.getInstance();
connPool.setServers(serversArray); //设置memcached服务器
connPool.setWeights(weight); //设置各个服务器存储权重
connPool.setMinConn(3); //设置连接池的最小连接数目
connPool.setInitConn(3); //初始化可用连接数目
connPool.setMaxIdle(10000); //可用连接池最长等待时间
connPool.setSocketTO(10000); //读取等待超时值
connPool.setSocketConnectTO(10000); //连接等待超时值
//心跳检测,设置为true时,每次通信都会先检测连接是否可用 增加IO和网络开销,一般设置为false 默认是false
connPool.setAliveCheck(false);
/**
* alg=0 使用String.hashCode()获得hash code,该方法依赖JDK,可能和其他客户端不兼容,建议不使用
* alg=1 使用original 兼容hash算法,兼容其他客户端
* alg=2 使用CRC32兼容hash算法,兼容其他客户端,性能优于original算法
* alg=3 使用MD5 hash算法
* 采用前三种hash算法的时候,查找cache服务器使用余数方法。采用最后一种hash算法查找cache服务时使用consistent方法。
**/
connPool.setHashingAlg(3);
//设置服务器宕机或连接由中断变为恢复后,该连接继续可用
connPool.setFailback(true);
//启动pool
connPool.initialize();
}
}

MemcacheTool

需要引入:java-memcached-release_2.5.2.jar包

java memcache应用的更多相关文章

  1. JAVA MemCache 史无前例的详细讲解【转】

    非原创转自:http://nhy520.iteye.com/blog/1775893 这篇文章是我看到的介绍的比较详细的,入门级别算是足足够了 Memcach什么是Memcache Memcache集 ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. ehcache memcache redis -- java中的三大缓存

      三个缓存在java代码中用的是较多的,但是它们都有自己的应用场合,和优缺点.  Ehcache 1.初衷:减少数据库操作的高延时而设计.(缓存的目的,好像都是这个吧) 2.Apache Licen ...

  4. CentOS安装卸载memcache及JAVA示例

      原文地址:http://www.cnblogs.com/zhongshengzhen/   先安装libevent,memcached依赖libevent的lib [root@VM_64_81_c ...

  5. java项目使用memcache实现session共享+session基础

    本文章主要目的是配置session共享,为了巩固基础,捎带介绍了一些基础知识(网上搜索后觉得最全面的特引过来,节省时间),基础扎实的可以自动忽略. 基础篇: 1.了解java web中的session ...

  6. java MemCachedClient遍历memcache中所有的key

    在java memcached client documentation中没有提共遍历memcache所有key的方法.但是提供了两个方法statsItems和statsCacheDump,通过sta ...

  7. java开发之阿里云对象存储OSS和云数据库Memcache的使用

    web开发中标配:aliyun ECS(阿里云服务器),aliyun RDS(阿里云数据库),aliyun OSS(阿里云对象存储),aliyun Memcache(阿里云缓存数据库). 今天就介绍下 ...

  8. java中Memcache的使用

    java中Memcache的使用 一.什么是Memcached? Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务.Memc ...

  9. (转)java中使用memcache

    背景:公司项目中使用java和memcache相结合来搭建缓存,所以要了解下缓存的基础知识! 1 了解memcache 1.1 基础知识 什么是Memcache? Memcache集群环境下缓存解决方 ...

随机推荐

  1. C#的GridView控件复习

    一,在新建一个空网站 二,在这网站新建一个default.aspx页面 三,添加一个GridView控件 四,新建一个数据库,这个数据库包含你要显示的表数据,这个表须包含主键(表的主键影响增删改的功能 ...

  2. 【Unity】Unity中C#与Android中Java的互相调用遇到的一些问题

    1.有关调用的一些问题: (1).在C#中直接调用java中的代码,无返回值: 在java中: public static void setAge(Context context , int leve ...

  3. 安卓---achartengine图表----简单调用----使用view显示在自己的布局文件中----actionBar的简单设置

    AChartEngine 是一个安卓系统上制作图表的框架,关于它的介绍大家可以百度,也可以参考下面这篇博客http://blog.csdn.net/lk_blog/article/details/76 ...

  4. Maxmum subsequence sum problem

    We have a lot of ways to solve the maximum subsequence sum problem, but different ways take differen ...

  5. PBO

    #include <GL/glew.h> #include <GL/freeglut.h> #include <iostream> GLuint pboID[]; ...

  6. Gentoo安装详解(三)-- 配置系统

    配置系统 系统信息: 文件系统信息: 创建/etc/fstab nano -w /etc/fstab 网络信息: Host name, Domainname, etc nano -w /etc/con ...

  7. Round Numbers(组合数学)

    Round Numbers Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Tota ...

  8. onbeforeunload与a标签在IE中的冲突bug(转载)

    onbeforeunload与a标签在IE中的冲突bug   onbeforeunload 是window的一个事件,目前Firefox,IE都支持,主要用来提示用户是否真的要离开该页面,通常在一些比 ...

  9. xtrabackup 2.0.8备份mysql5.1.65报错

    sh : xtrabackup not found innobackupex: fatal error: no 'mysqld' group in MySQL options fix: add inn ...

  10. C语言语法tips(不断更新)

    语法虽然琐碎,犯了低级错误代价可就大了,列出一些容易混淆概念,避免以后出错 sizeof和strlen的区别在于:1.sizeof是运算符,语言支持的,strlen可以求malloc出来的字符串的长度 ...