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. LeetCode OJ combine 3

    public class Solution { public List<List<Integer>> combinationSum3(int k, int n) { retur ...

  2. java TCP并发实现文件上传---转载(PS:适合java1.6之前)

    /** 客户端 1.服务端点 2.读取客户端已有的文件数据 3.通过socket输出流发给服务端 4.读取服务端反馈信息 5.关闭 **/ import java.io.*; import java. ...

  3. 洛谷-A+B Problem-洛谷的第一个任务

    题目描述 Description 输入两个整数a,b,输出它们的和(a,b<=10^9)  输入输出格式 Input/output 输入格式:两个整数以空格分开输出格式:一个数  输入输出样例  ...

  4. 【strtok()】——分割字符串

    对字符串进行分割: 在使用前需要先初始化例如: char * p=strtok(Str," ");/*初始化以" "(以空格字符来分割字符串),即把" ...

  5. Excel补全日期(日期按顺序补全)

    1.给出的数据 2.想补全缺失的日期,比如2015/3/1,2015/3/2,... 1)在D列输入完整的日期,如下图所示: 2)在E2处写函数“=IF(ISERR(VLOOKUP(D2,B:C,2, ...

  6. 运行CImg库笔记

    1. 在程序代码中加入 #include "CImg.h" using namespace cimg_library; 2. (1)Mac下 出现错误“无X11/Xlib.h”,: ...

  7. 怎么查看window7的.net framework的版本

    第一步.打开控制面板,在大图标查看方式下,点击“程序和功能” 第二步.在程序和功能界面,点击左侧“打开或关闭Windows功能” 第三步.在打开或关闭Windows功能界面,通过拖动滚动条的方式,找到 ...

  8. SpringMvc处理post请求乱码的filter

    <filter>         <filter-name>encodingFilter</filter-name>         <filter-clas ...

  9. RLE行程长度编码压缩算法

    在看emWIN的时候看到一个图片压缩的算法可以有效的对二值图(简单的2中颜色或者更多)进行压缩,压缩的效果可以节省空间而且不丢失信息! 特点 一种压缩过的位图文件格式,RLE压缩方案是一种极其成熟的压 ...

  10. 关于C++数组的几点讨论

    数组名为何物? int main() { , , , , }; int *pnumber = number; cout << sizeof(number) << endl; c ...