常用命令:

  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. 简单dp ---HDU3485 Count 101

    题目大意:让求长度为n的0 和 1 构成的串中不包含101子串的个数有多少. 这个题当时想了好久,以为是一个规律题,一直在推规律,最后还是wa了,上网一看原来是dp问题, 不过确实递推式挺巧妙的. 递 ...

  2. 01-资料管理器(Directory/DirectoryInfo操作文件夹类)

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Loa ...

  3. nyoj 44

    //nyoj 44 //和上面一题一样,求子串和,但是代码非常简洁..... 时间复杂度为n #include <iostream> using namespace std; int ma ...

  4. 织梦DEDECMS {dede:field name='position'/}标签增加其它属性的

    在默认情况下,织梦(DedeCms)系统当前位置的调用标签为: {dede:field name='position'/} 在这种默认的情况下,生成后的代码大致为如下格式: 主页 > 应用软件 ...

  5. IE7append新的元素自动补充完整路径

    在IE7下,进行append操作时,会把像<img />的src补成完整路径.对于上传到临时目录的图片,提交到后台要进行路径判断的情形要十分注意.

  6. CSS元素分类及区别

    元素是文档结构的基础,在CSS中,每个元素生成了一个包含了元素内容的框(box,也译为“盒子”).但是不同的元素显示的方式会有所不同,例如<div>和<span>就不同,而&l ...

  7. mssql 2008 失败 需要重新启动计算机 的解决办法

    大致出错信息如下:RebootRequiredCheck 检查是否需要挂起计算机重新启动.挂起重新启动会导致安装程序失败. 失败 需要重新启动计算机.必须重新启动计算机才能安装 SQL Server. ...

  8. JavaScript 客户端JavaScript之Document对象中的表单和表单元素

    Form对象 代表一个HTML表单(document可以有多个表单元素) 表单访问 document.form[document.forms.length-1] 访问表单元素 document.for ...

  9. XML DOM 总结一

        对这个基本概念我不介绍太多,无非就是一定格式的文本而已,我现在侧重于如何使用它.      首先看看.NET对它的支持.      首先看看这个类图:            所有的都是基于Xm ...

  10. angularjs使用directive实现倒计时按钮

    前不久在做一个彩票的项目时,有一个手动开奖的需求.所以有了这个倒计时按钮.下面分享下具体的代码: 效果: 代码: App.directive('timerBtn', function() { // 倒 ...