1、首先要搭建服务端的程序。

下载地址:http://pan.baidu.com/s/1hrJ9jE0 密码:spqc

将对应版本的文件夹,放到D盘,任意位置即可

桌面-程序-运行-cmd-打开命令行:

D:

进入D盘

cd memcache(文件夹名,你起的啥就敲啥)

memcached -d install

如果执行不成功,抛了个异常,则需要进入C:\Windows\System32\cmd.exe

选中后,以管理员权限去运行即可。

2、下载客户端使用的jar文件,因为在maven库里搜了好久都没有搜到相关的jar文件,所以就将jar文件放到自己本地的maven库中,然后使用项目引用。

下载你要使用版本的memcached。下载memcached client

3、将里面的   java_memcached-release_2.6.6.jar 这个文件 放在d盘(你看哪边爽 放在哪边)

4、cmd 进入命令;进入D:盘,输入如下命

D:\>mvn install:install-file -Dfile=d:/java_memcached-release_2.6.6.jar -DgroupId=com.danga -DartifactId=memcached -Dversion=2.6.6 -Dpackaging=jar -DgeneratePom=true

5、项目中使用maven引用文件

<dependency>
<groupId>com.danga</groupId>
<artifactId>memcached</artifactId>
<version>2.6.6</version>
</dependency>
  

6、memcached的使用

package cfs.wsdl.cache;
import java.io.Serializable; import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class test {
public static void main(String[] args) {
String[] servers = { "192.168.1.126:11211" }; //配置服务端的地址,看好这是个数组,也意味着多个服务端地址直接扔到数组里即可
//得到一个链接池对象并进行一些初始化工作
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);//设置服务端
pool.setFailover(true); //大概意思是为false如果连接管道失败了直接返回就不会再去找其他机器了,为true会组装一些新的key到剩下的服务器里去找。
pool.setInitConn(10); //初始化时对每个服务器建立的连接数目
pool.setMinConn(5); //每个服务器建立最小的连接数,当自查线程发现与某个服务器建立连接数目小于这个数目时会弥补剩下的连接
pool.setMaxConn(250); //每个服务器建立最大的连接数
//pool.setMaintSleep( 30 );//自查线程周期进行工作,其每次休眠时间
pool.setNagle(false); //Socket的参数,如果是true在写数据时不缓冲,立即发送出去
pool.setSocketTO(3000); //Socket阻塞读取数据的超时时间
pool.setAliveCheck(true);//为true会检查Socket是否已经连接
pool.initialize(); //初始化完毕
//得到具体的客户端操作对象
MemCachedClient mcc =new MemCachedClient();
//插入数据3中方式
mcc.set("test1", "测试1");//第一种,这种方式如果key已存在则直接覆盖重写了
mcc.add("test2", "测试2");//第二种,这种方式只会添加,如果key已存在则返回false,添加不成功
mcc.replace("test3", "测试3");//顾名思义,同第一种差不多。
//如果想要存实体类,必须要将实体类序列化。让实体类 去 implements Serializable 这个接口
//如果想要存泛型集合,同理,对应的泛型也必须要序列化。
//获取数据
mcc.get("test1");//获取到的数据别忘啦转型哦
//删除数据
mcc.delete("test1");
//清空数据
mcc.flushAll();//执行了此方法,所有缓存的数据都置空了,再获取则为null }
}
 //获取所有的key
public static List<String> getAllKeys() {
MemCachedClient memCachedClient= MemcachedUtil.getMcu().getMcc();
List<String> list = new ArrayList<String>();
Map<String, Map<String, String>> items = memCachedClient.statsItems();
for (Iterator<String> itemIt = items.keySet().iterator(); itemIt.hasNext();) {
String itemKey = itemIt.next();
Map<String, String> maps = items.get(itemKey);
for (Iterator<String> mapsIt = maps.keySet().iterator(); mapsIt.hasNext();) {
String mapsKey = mapsIt.next();
String mapsValue = maps.get(mapsKey);
if (mapsKey.endsWith("number")) { //memcached key 类型 item_str:integer:number_str
String[] arr = mapsKey.split(":");
int slabNumber = Integer.valueOf(arr[1].trim());
int limit = Integer.valueOf(mapsValue.trim());
Map<String, Map<String, String>> dumpMaps = memCachedClient.statsCacheDump(slabNumber, limit);
for (Iterator<String> dumpIt = dumpMaps.keySet().iterator(); dumpIt.hasNext();) {
String dumpKey = dumpIt.next();
Map<String, String> allMap = dumpMaps.get(dumpKey);
for (Iterator<String> allIt = allMap.keySet().iterator(); allIt.hasNext();) {
String allKey = allIt.next();
list.add(allKey.trim()); }
}
}
}
}
return list;
}

获取所有的key

分分钟学会使用memcached的更多相关文章

  1. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  2. 干货分享:让你分分钟学会 javascript 闭包

    闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  3. 让你分分钟学会 JS 闭包

    闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  4. 干货分享:让你分分钟学会 javascript 闭包(转)

    闭包,是javascript中独有的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述,直 ...

  5. [转][译] 分分钟学会一门语言之 Python 篇

    Python was created by Guido Van Rossum in the early 90's. It is now one of the most popularlanguages ...

  6. 让你分分钟学会 javascript 闭包

    闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  7. SpringBoot系列(八)分分钟学会Springboot多种解决跨域方式

    SpringBoot系列(八) 分分钟学会SpringBoot多种跨域解决方式 往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 s ...

  8. 干货分享:让你分分钟学会 JS 闭包

    闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  9. 让你分分钟学会Javascript中的闭包

    Javascript中的闭包 前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它 ...

随机推荐

  1. Outlook Web App简介

    一.什么是Outlook Web AppOutlook Web Access简称OWA是基于微软Hosted Exchange技术的托管邮局的一项Web访问功能.通过访问Outlook Web Acc ...

  2. HTML5 新特性总结

    1.使用autocomplete 自动完成必须给input 加上name. 2.SVG图形代码 复制https://developer.mozilla.org/zh-CN/docs/Web/SVG/E ...

  3. 在Kibana上格式化字段,更好的在dashboard上展示

    一.为什么要格式化? 接着之前的文章-利用 ELK系统分析Nginx日志并对数据进行可视化展示.下面是http访问的日志,里面有一个字段,bytes 传输的字节,如下图: 绿色框框内选中的就是本次请求 ...

  4. 《深入理解Java集合框架》系列文章

    Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framewo ...

  5. mysql批量生成修改表和列注释语句

    当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 ...

  6. thread_AtomicBoolean

    Boolean值的变化的时候不允许在之间插入,保持操作的原子性 它提供了原子性操作,其中exists.compareAndSet(false, true)这个操作把比较和赋值操作组成了一个原子操作,中 ...

  7. LeeCode - Unique Binary Search Trees

    题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For e ...

  8. SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈【转】

    转载自:http://blog.csdn.net/dba_huangzj/article/details/7607844#comments 通过DMV查看当时SQL SERVER所有任务的状态(sle ...

  9. JQ关于浏览器宽高的获取方式

    JQ关于浏览器宽高的获取方式 alert($(window).height()); //浏览器时下窗口可视区域高度alert($(document).height()); //浏览器时下窗口文档的高度 ...

  10. 刚刚开通博客,分享Asp.Net的GridView的基本用法

    包含有 数据的编辑,删除, 标题的添加,自定义分页,高亮显示鼠标所在,以及数据不足时添加空行 aspx页面代码 <asp:GridView ID="GridView1" ru ...