常用命令:

  memcached设计的原则就是简单,所以支持的命令也不是特别多~

  1.查看memcached的状态,主要用于分析内存的使用状况、优化内存分配等

  stats	  查看memcached的运行状态
  stats items 查看items的状态
  stats slabs 查看slabs的内存分配状态,注重点在性能而非计数
  stats sizes 查看

  2.存

  set                存值,若key已存在会覆盖原值
  add     存值,若key已存在保存失败
  replace      替换原值,若key不存在替换失败
  append      在原value的末尾上追加内容
  prepend      在原value的头部追加内容
  cas(check and set) 检索并设置值
  incr    取值自增
  decr     取值自减

  3.取

  get key        获取某个key的值
  gets key1 key2   获取多个key的值

  4.删

  delete key  删除某个key
  flush_all 清除所有存储的内容,不会释放内存

  

  基于java客户端的三种实现

  1.使用最久、最广泛的memcached client for java

package com.wang.client.danga;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool; /**
* memcached client for java 较早推出,应用广泛、运行稳定
* 下载地址:https://cloud.github.com/downloads/gwhalin/Memcached-Java-Client/java_memcached-release_2.6.6.zip
* 解压出依赖jar包:commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar
* @author wlyfree
*/
public class MemcachedClientForJava_Danga_Demo { public static void main(String[] args) {
MemCachedClient client = new MemCachedClient();
// 初始化SockIOPool,管理memcached连接池
SockIOPool pool = SockIOPool.getInstance();
// 配置
String[] servers = new String[] { "10.90.11.142:11211",
"10.90.11.142:11212", "10.90.11.142:11213" };
pool.setServers(servers);
pool.setFailover(true);
pool.setInitConn(10); // 设置初始连接
pool.setMinConn(5);// 设置最小连接
pool.setMaxConn(250); // 设置最大连接
pool.setMaxIdle(1000 * 60 * 60 * 3); // 设置每个连接最大空闲时间3个小时
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
pool.initialize();
//测试
System.out.println(client.add("aa", "11"));
System.out.println(client.get("aa"));
System.out.println(client.set("aa", "22"));
System.out.println(client.get("aa"));
System.out.println(client.add("aa", "33"));
System.out.println(client.get("aa"));
System.out.println(client.delete("aa"));
System.out.println(client.get("aa"));
}
}

  2.spymemcached

package com.wang.client.spy;

import java.io.IOException;
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.internal.OperationFuture; /**
* 性能稳定、稳定性略差
* 依赖jar包:spymemcached-2.10.2.jar
* 当集群内某节点down机,数据不会hash到新节点,而是直接失败。修改源码可能会修复此问题:http://colobu.com/2015/11/24/One-spymemcached-issue-when-one-node-fails/
* 总结完了,感觉这么不稳定的东西应该没人在生产环境使用吧!
* @author wlyfree
*/
public class SpyMemcached_Demo {
public static void main(String[] args) {
try {
MemcachedClient client = new MemcachedClient(new InetSocketAddress("10.90.11.142", 11211));
OperationFuture<Boolean> operationFuture = client.add("spy", 0, "spy1");
System.out.println(operationFuture.getStatus() + "==========" + client.get("spy"));
operationFuture = client.set("spy", 0, "spy2");
System.out.println(operationFuture.getStatus() + "==========" + client.get("spy"));
operationFuture = client.add("spy", 0, "spy3");
System.out.println(operationFuture.getStatus() + "==========" + client.get("spy"));
operationFuture = client.delete("spy");
System.out.println(operationFuture.getStatus() + "==========" + client.get("spy"));
} catch (IOException e) {
e.printStackTrace();
} }
}

  3.xmemcached

package com.wang.client.xmemcached;

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.XMemcachedClient; /**
* 基于nio实现,性能好,效率高,资源耗费少
* 依赖jar包:xmemcached-版本号.jar
* 程序托管到github了:https://github.com/killme2008/xmemcached/
* 作者:原淘宝某几位大神
* @author wlyfree
*/
public class xmemcached_Demo {
public static void main(String[] args) {
try {
MemcachedClient client = new XMemcachedClient("10.90.11.142",11211);
String key = "xmemcached";
System.out.println(client.add(key,0,"x1"));
System.out.println(client.get(key));
System.out.println(client.set(key,0,"x2"));
System.out.println(client.get(key));
System.out.println(client.add(key,0,"x3"));
System.out.println(client.get(key));
System.out.println(client.delete(key));
System.out.println(client.get(key));
} catch (Exception e) {
e.printStackTrace();
} }
}

  

memcached学习——常用命令+基于java客户端的3种简单实现(二)的更多相关文章

  1. maven3常用命令、java项目搭建、web项目搭建详细图解(转)

     转自:http://blog.csdn.net/edward0830ly/article/details/8748986 maven3常用命令.java项目搭建.web项目搭建详细图解 2013-0 ...

  2. hadoop学习(三)HDFS常用命令以及java操作HDFS

    一.HDFS的常用命令 1.查看根目录下的信息:./hadoop dfs -ls 2.查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./i ...

  3. Redis的常用命令与Java整合及高级应用篇

    一,redis是什么? ​ 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性. ​ 相反非关系型数据库采用key ...

  4. hdfs shell命令及java客户端编写

    一. hdfs shell命令 可以通过hadoop fs 查看所有的shell命令及其用法. 传文件到hdfs: hadoop fs -put /home/koushengrui/Downloads ...

  5. 由Memcached升级到 Couchbase的 Java 客户端的过程记录(一)

    背景: 在项目启动的选用了Memcached 作为缓存服务器,采用了Xmemcached作为客户端.在项目中使用了Shiro,为了给 Shiro 配置缓存的时候,采用了开源代码   https://g ...

  6. maven3常用命令、java项目搭建、web项目搭建详细图解

    http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命令-- ...

  7. JAX-WS 学习一:基于java的最简单的WebService服务

    JAVA 1.6 之后,自带的JAX-WS API,这使得我们可以很方便的开发一个基于Java的WebService服务. 基于JAVA的WebService 服务 1.创建服务端WebService ...

  8. hadoop系列二:HDFS文件系统的命令及JAVA客户端API

    转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...

  9. maven3常用命令、java项目搭建、web项目搭建

    ------------------------------maven3常用命令--------------------------- 1.常用命令 1)创建一个Project mvn archety ...

随机推荐

  1. List 去处自定义重复对象方法

    list泛型集合去除重复项,对于单一的某个字段非常简单,但是对于一些自定义要求的还需自定义规则.例子代码: /************绑定乘客信息********/ List<RT.Model. ...

  2. 常用PC服务器LSI阵列卡配置

    通常,我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控:而HP ...

  3. Linux popen/pclose

    popen() 函数 #include <stdio.h>FILE * popen(const char *command , const char *type );int pclose( ...

  4. 一览css布局标准

    回顾历史,CSS1于1996.12.17发正式版,它是为辅助HTML的展现效果而生的.1998.5.12,CSS2发正式版.随后发修订版CSS2.1,纠正了CSS2中的一些错误.注意从CSS2起,CS ...

  5. 秒味课堂Angular js笔记------Angular js中的工具方法

    Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...

  6. 各种乱码,编码问题设置方法整理(UTF-8)

    一.tomcat中文乱码问题 打开tomcat安装目录,在conf文件夹中找到server.xml文件 ,找到   <Connector port="8009" protoc ...

  7. [php基础]记录PHP错误日志 display_errors与log_errors的区别

    display_errors 错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项.错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利.推荐关闭此选项. display ...

  8. 信息增益(IG,Information Gain)的理解和计算

    决策树构建中节点的选择靠的就是信息增益了. 信息增益是一种有效的特征选择方法,理解起来很简单:增益嘛,肯定是有无这个特征对分类问题的影响的大小,这个特征存在的话,会对分类系统带来多少信息量,缺了他行不 ...

  9. C#实现MySQL数据库中的blob数据存储

    在MySQL数据库中,有一种blob数据类型,用来存储文件.C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll. Mysql.Data.dll(6.9.6)组件下载 ...

  10. python反射机制

    http://blog.163.com/yang_jianli/blog/static/161990006201382241223156/ http://www.jb51.net/article/54 ...