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. HMM 自学教程(三)隐藏模式

    本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...

  2. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  3. Android 学习笔记之ContentProvider实现数据共享....

    PS:最近听老师说打算让我参与企业的app制作,让我加快学习的进度...好吧,貌似下周还有考试...貌似实验室这个app也要做...暂时不管了...那就只能加快进度了,感觉略微的有点激动和紧张,总算是 ...

  4. SQL Server里强制参数化的痛苦

    几天前,我写了篇SQL Server里简单参数化的痛苦.今天我想继续这个话题,谈下SQL Server里强制参数化(Forced Parameterization). 强制参数化(Forced Par ...

  5. css中filter:alpha透明度使用

    css中filter:alpha透明度使用    使用filter可以设置透明度,filter:alpha在IE下是没有问题的,要支持firefox就需要使用-moz-opacity,下面有个不错的示 ...

  6. Const的用法

    宏和const的区别: 1.宏执行的是替换操作,这也就意味着会在内存中开辟多个临时空间 这样显然不是很好 2.宏不可以修改 const : 用const修饰的变量 为常量 不能修改,在内存中只有一份内 ...

  7. [Solution] 1分钟使用log4net

    log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具 官网:http://logging.a ...

  8. URL与图像格式

    绝对/相对URL “绝对URL”是指资源的完整的地址,通常以“http://”打头: “相对URL”是指Internet上资源相对于当前页面的地址,它包含从当前页面指向目标资源位置的路径,不以“htt ...

  9. C#中CookieContainer获取里面cookie值异常:InvokeMember("m_domainTable") FieldAccessException

    1.可能是主机提供商的 安全问题. Their hosts works in medium trustsecurity, and ASProxy needs a full trust security ...

  10. 较友好的Web文件下载用户体验实例

    1.实际需求整理与分析 该问题起源于为公司做的一个B/S架构的游戏静态数据管理工具,其中有一个需求是点击页面上的一些按钮要下载文件,可能根据按钮类型的不同需要转换下载.json..zip..xlsx等 ...