memcached有三种java客户端

  第一种:Com.danga 包下面的memcached,需引入jar(本人用的是memcached-2.5.2.jar 文末附上附件需要的可以下载)

  第二种:spyMemcached

  第三种:XMemcached

据说第三种是使用最简单,最好用的,我也只接触并使用过第三种

首先是xmemcached安装

  1.memcached和libevent下载:
  官网:http://www.monkey.org

  2.解压安装libevent:
  $ tar zxvf libevent-1.2.tar.gz
  $ cd libevent-1.2
  $ ./configure –prefix=/usr/libevent  //这个prefix就是安装路径
  $ make
  $ make install

  3.测试libevent是否安装成功:
  # ls -al /usr/lib | grep libevent
  lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
  -rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
  -rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
  -rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
  lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
  基本上如果是这样就是安装上了,如果报错,就一定要主义文件夹的操作权限(读入权限(chmod +r libevent 加入写入权限))

  4.安装memcached,同时需要安装中指定libevent的安装位置:
  # tar zxvf memcached-1.2.0.tar.gz
  # cd memcached-1.2.0
  # ./configure –prefix=/usr/memcached –with-libevent=/usr/libevent   //同样的指定memcached的安装路径(默认的是在usr/local) 后面的指定为libevent的安装路径
  # make
  # make install

  5.测试是否成功安装memcached:
  # ls -al /usr/memcached/bin/mem*
  -rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
  -rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

  如果这样现实,基本上就成功了

  启动服务:

  memcached -d -m 100 -u root -c 10 -p 11211 -P /tmp/memcached1.pid

  -p 指定端口号(默认11211)  
  -m 指定最大使用内存大小(默认64MB)  
  -t 线程数(默认4)  
  -l 连接的IP地址, 默认是本机  
  -d start 启动memcached服务  
  -d restart 重起memcached服务  
  -d stop|shutdown 关闭正在运行的memcached服务  
  -m 最大内存使用,单位MB。默认64MB  
  -M 内存耗尽时返回错误,而不是删除项  
  -c 最大同时连接数,默认是1024
  -f 块大小增长因子,默认是1.25
  -n 最小分配空间,key+value+flags默认是48

  后面的P用于指定访问id记录,在启动和调用memcached之后生成

  如果我们要查看是否有memcached进程:$ps -ef|grep memcached

  连接试试看:telnet 服务器ip 端口(eg:telnet 127.0.0.1 11211)

很多人自己摸索学习没有linux服务器,我自己在学习的过程种也在自己电脑(windows系统)上装了一个,所以也简单说一下windows上面的安装(其实有百度教程的):

  一:下载

  http://downloads.northscale.com/memcached-win64-1.4.4-14.zip 或 www.newasp.net/soft/63735.html

  二:安装启动

  打开cmd,找到解压的位置,输入memcached.exe -d install 安装 memcached.exe -d start启动服务,如果想启用多个服务:sc create "Memcached Server1" start= auto binPath= "D:\Memcached\memcached.exe -d runservice -m 100 -p 11210 -l 127.0.0.1" DisplayName= "Memcached Server1",注意端口号不要重复,使用的时候启动该服务,新建的服务并没有立即启动。

##########################################

好的,基本上我们就装上了memcached

写一个简单的测试类:

package com.memcached.study;
import java.io.IOException;
import java.util.concurrent.TimeoutException;

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.command.BinaryCommandFactory;
import net.rubyeye.xmemcached.exception.MemcachedException;
import net.rubyeye.xmemcached.utils.AddrUtil;

public class TestXMemcache
{
public static void main(String[] args) {
int[] weight={1,2};
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil

.getAddresses("127.0.0.1:11211 127.0.0.1:11210"),weight);
//宕机报警
builder.setFailureMode(true);
//使用二进制协议,默认使用的TextCommandFactory即文本协议
builder.setCommandFactory(new BinaryCommandFactory());

MemcachedClient memcachedClient;

try {

memcachedClient = builder.build();

memcachedClient.set("hello", 0, "Hello,xmemcached");

String value = memcachedClient.get("hello");

System.out.println("hello=" + value);

//memcachedClient.delete("hello");

memcachedClient.set("zlex", 0, "Hello,xmemcached");
value = memcachedClient.get("zlex");

System.out.println("zlex=" + value);

// close memcached client

memcachedClient.shutdown();

} catch (MemcachedException e) {

System.err.println("MemcachedClient operation fail");

e.printStackTrace();

} catch (TimeoutException e) {

System.err.println("MemcachedClient operation timeout");

e.printStackTrace();

} catch (InterruptedException e) {

// ignore

}catch (IOException e) {

System.err.println("Shutdown MemcachedClient fail");

e.printStackTrace();

}

}
}

###忘了说,需要的ja包

然后我们通过telnet连接到memcached里面去看一下

果然有了,没毛病。

  

Xmemcached学习笔记的更多相关文章

  1. Dubbo -- 系统学习 笔记 -- 依赖

    Dubbo -- 系统学习 笔记 -- 目录 依赖 必需依赖 缺省依赖 可选依赖 依赖 必需依赖 JDK1.5+ 理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策 ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. xUtils使用详细介绍

    xUtils3使用详解 一.xUtils简介: xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,官网:https://github.com/wyouflf/xUtil ...

  2. python迭代器生成器(一)

    for循环可以用于python中任何序列类型,包括序列.元组以及字符串.例如: >>> for x in [1,2,3,4]: print(x * 2,end='')...2468 ...

  3. [Android FrameWork 6.0源码学习] View的重绘过程

    View绘制的三部曲,  测量,布局,绘画今天我们分析测量过程 view的测量是从ViewRootImpl发起的,View需要重绘,都是发送请求给ViewRootImpl,然后他组织重绘在重绘的过程中 ...

  4. [图形学] 习题8.12 NLN二维线段裁剪算法实现

    Nicholl-Lee-Nicholl二维线段裁剪算法相对于Cohen-Sutherland和Liang-Barsky算法来说,在求交点之前进行了线段端点相对于几个区域的判断,可以确切的知道要求交点的 ...

  5. VB6之写注册表

    难免会遇到写注册表的情况,写了个实用点的RegWrite函数.为了减少代码量,用WScript.Shell取代了API来实现. 使用方式就在注释中了,就不再过多解释了.PS:注释比实现代码要丰富多了, ...

  6. “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp,K,二分+排序,L,矩阵快速幂,M,线段树区间更新+Lazy思想,N,超级快速幂+扩展欧里几德,O,BFS】

    黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个 ...

  7. 不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结

    XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpReques ...

  8. JVM学习(1)——通过实例总结Java虚拟机的运行机制-转载http://www.cnblogs.com/kubixuesheng/p/5199200.html

    JVM系类的文章全部转载自:http://www.cnblogs.com/kubixuesheng/p/5199200.html 特别在此声明.那位博主写的真的很好 ,感谢!! 俗话说,自己写的代码, ...

  9. poj_3468: A Simple Problem with Integers (树状数组区间更新)

    题目是对一个数组,支持两种操作 操作C:对下标从a到b的每个元素,值增加c: 操作Q:对求下标从a到b的元素值之和. 这道题也可以用线段树解,本文不做描述,下面分析如何用树状数组来解决这道题. 先把问 ...

  10. 设计模式--工厂方法模式(Factory method pattern)及应用

    面向对象的好处: 通过封装,继承,多态把程序的耦合度降低. 用设计模式可以使程序更加灵活,容易修改,且易于复用. 1. 工厂方法模式 Define an interface for creating ...