上一篇介绍了Memcached基本使用方法《Memcached使用手册》,下面介绍java如何操作memcached。使用的是java_memcached-release_2.6.6。

一、使用方法

新建项目,添加相关jar包:

直接上代码了,注释写的很详细,不用多说了啊。

package www.xufei.com;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool; public class MemcachedDemo { public static void main(String[] args) {
//memcached服务器
String[] servers = {"127.0.0.1:11211","192.168.1.3:11211"};
/**
* 设置连接池可用cache服务器的权重,和server数组的位置一一对应
*/
Integer[] weights = {1,2};
/**
* 这个类用来创建管理客户端和服务器通讯连接池,客户端主要的工作包括数据通讯、服务器定位、hash码生成等都是由这个类完成的。
* 获得连接池的单态方法。这个方法有一个重载方法getInstance( String poolName ),每个poolName只构造一个SockIOPool实例。
* 缺省构造的poolName是default。
*/
SockIOPool pool = SockIOPool.getInstance();
//设置memcached服务器
pool.setServers(servers);
//设置memcached服务器权重
pool.setWeights(weights);
//设置容错开关设置为TRUE,当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认
pool.setFailover( true );
//设置开始时每个cache服务器的可用连接数
pool.setInitConn( 10 );
//设置每个服务器最少可用连接数
pool.setMinConn( 5 );
//设置每个服务器最大可用连接数
pool.setMaxConn( 250 );
/**
* 设置连接池维护线程的睡眠时间
* 设置为0,维护线程不启动
* 维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
*/
pool.setMaintSleep( 30 );
/**
* 设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)
*/
pool.setNagle( false );
/**
* 设置socket的读取等待超时值
*/
pool.setSocketTO( 3000 );
/**
* 设置连接心跳监测开关。
* 设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。
*/
pool.setAliveCheck( true );
/**
* 设置完pool参数后最后调用该方法,启动pool。
*/
pool.initialize(); /**
* 创建一个memcached客户端,所有对memcached中数据操作的方法都在这个类里面
*/
MemCachedClient memCachedClient = new MemCachedClient();
/**
* 存储一个username,值为刘德华,存储成功返回true
*/
boolean success = memCachedClient.set("username", "刘德华");
System.out.println(success); /**
* 从缓存中获取一个key为username的数据
*/
Object o = memCachedClient.get("username");
System.out.println(o); /**
* 定义一个p对象,Persion类必须实现Serializable接口
*/
Persion p = new Persion();
p.setId("1");
p.setName("周杰伦"); /**
* 缓存一个p对象
*/
memCachedClient.set("p1", p); /**
* 获取缓存的p对象
*/
Persion p1 = (Persion) memCachedClient.get("p1");
System.out.println(p1.getName()); /**
* 调用add方法添加一个key为p1的对象,值123是不能添加进缓存的,因为p1已经添加过一次了
*/
memCachedClient.add("p1", 123);//错误!无法更新p1的值 System.out.println(memCachedClient.get("p1"));//还是person对象 /**
* 使用set方法可以更新p1
*/
memCachedClient.set("p1", 123);
System.out.println(memCachedClient.get("p1"));//输出123 /**
* 使用replace方法可以更新p1
*/
memCachedClient.replace("p1", 456);
System.out.println(memCachedClient.get("p1"));//输出456 /**
* 使用replace方法可以更新p2,缓存中不含有key为p2的数据,无法更新,不会添加
*/
memCachedClient.replace("p2", 456);
System.out.println(memCachedClient.get("p2"));//输出null /**
* 删除key为p1的缓存数据
*/
memCachedClient.delete("p1");
System.out.println(memCachedClient.get("p1"));//输出null
}
}

  

二、常用方法说明

1、SockIOPool 是socket 连接池类

setServers(String[] servers) :设置服务器信息数组;

setWeights(String[] weights) :设置服务器权重数组;

setInitConn(int count) :设置初始连接数;

setMinConn(int minConn) :设置最小连接数;

setMaxConn(int maxConn) :设置最大连接数;

setMaxIdle(long arg0) :设置最大处理时间;

setMaintSleep(long arg0) :主线程的睡眠时间;

initialize() :初始化连接池。

2、MemCachedClient 类及其常用方法

add(String key, Object value) :添加一个键值对到缓存中;

add(String key, Object value,Date expires) :添加一个键值对到缓存中,并设置其超时时间;

set(String key, Object value) :在缓存中设置一个键的值;

set(String key, Object value, Date expires) :在缓存中设置一个键的值,并设置其超时时间;

get(String key) :获得某个键的值。

incr(String key) :为某个键上的值执行+1 操作;

decr(String key) :为某个键上的值执行-1 操作;

replace(String key, String value) :将某个键的值替换成新的值;

replace(String key, String value, Date expires) :将某个键的值替换成新的值,并设置其超时时间。

delete(String key):删除缓存中一个key的值

 

MemcachedClient 使用说明的更多相关文章

  1. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  2. awk使用说明

    原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...

  3. “我爱背单词”beta版发布与使用说明

    我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院  拒 ...

  4. Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

  5. Map工具系列-02-数据迁移工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  6. Map工具系列-03-代码生成BySQl工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  7. jQuery验证控件jquery.validate.js使用说明

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...

  8. gdbsever 使用说明

    gdbsever 使用说明 在新塘N3292x平台下 编译 gdbsever ./configure --target=arm-linux --host=arm-linux arm-linux-gdb ...

  9. mongoVUE的增删改查操作使用说明

    mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...

随机推荐

  1. MATLAB仿真学习笔记(一)

    一.Simulink概述 1.特点 simulink是对动态系统进行建模.仿真和综合分析的图形化软件,可以处理线性和非线性.离散.连续和混合系统,也可以处理单任务和多任务系统,并支持多种采样频率的系统 ...

  2. Enable ssh root login in Solaris

    1. Change the file /etc/ssh/sshd_config with PermitRootLogin yes to replace PermitRootLogin no 2. re ...

  3. 【CodeCraft-19 and Codeforces Round #537 (Div. 2) C】Creative Snap

    [链接] 我是链接,点我呀:) [题意] 横坐标1..2^n对应着2^n个复仇者的基地,上面有k个复仇者(位置依次给出). 你是灭霸你要用以下方法消灭这k个复仇者: 一开始你获取整个区间[1..2^n ...

  4. Html学习总结(2)——Html页面head标签元素的意义和应用场景

    相信在html5之前,很少人会关注html页面上head里标签元素的定义和应用场景,可能记得住的只有"title"."keyword"和"descri ...

  5. Centos 7开启网卡打开DHCP自动获取IP

    在Windows10上安装了CentOS7的Hyper-V虚拟机. 虽然配置了可访问外网的网卡(Win8.1 Hyper-V 共享本机IP上网),但是默认安装的CentOS是没有开启配置网卡信息的,也 ...

  6. B - Oulipo

    The French author Georges Perec (1936�C1982) once wrote a book, La disparition, without the letter ' ...

  7. [bzoj2213][Poi2011]Difference_动态规划

    Difference bzoj-2213 Poi-2011 题目大意:已知一个长度为n的由小写字母组成的字符串,求其中连续的一段,满足该段中出现最多的字母出现的个数减去该段中出现最少的字母出现的个数最 ...

  8. 51Nod——T 1113 矩阵快速幂

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 ...

  9. mysql高可用架构方案之中的一个(keepalived+主主双活)

    Mysql双主双活+keepalived实现高可用           文件夹 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... ...

  10. android 自己定义ViewGroup实现可记载并呈现选择的ListView

    转载请注明出处:王亟亟的大牛之路 之前也做过一些用TextView之类的记录ListView选项的东西.可是总认为好难看.发现个不错的实现就贴给大家. 项目文件夹 执行效果: 自己定义视图: @Tar ...