分分钟学会使用memcached
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的更多相关文章
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- 干货分享:让你分分钟学会 javascript 闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- 让你分分钟学会 JS 闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- 干货分享:让你分分钟学会 javascript 闭包(转)
闭包,是javascript中独有的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述,直 ...
- [转][译] 分分钟学会一门语言之 Python 篇
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popularlanguages ...
- 让你分分钟学会 javascript 闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- SpringBoot系列(八)分分钟学会Springboot多种解决跨域方式
SpringBoot系列(八) 分分钟学会SpringBoot多种跨域解决方式 往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 s ...
- 干货分享:让你分分钟学会 JS 闭包
闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- 让你分分钟学会Javascript中的闭包
Javascript中的闭包 前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它 ...
随机推荐
- DBA需要掌握的shell知识
每个中高级DBA都需要掌握一些简单脚本的编写,这样才能从繁杂重复的基础维护工作中解脱出来,才能有时间去研究更有价值的技术.VBird在讲shell script的时候,给出了几个经典的小范例练习,对于 ...
- ADO.NET学习系列(三)----做一个登录案例
总体思路.根据用户输入的用户名和密码,来判断,和数据库里面存的是不是一样,如果一样就表明登录成功,否则就登录失败. 方案一: 1.select* from 表名 where username=&quo ...
- 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!
Osu! Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5078 Mean: 略. analyse: 签到题,直接扫一遍就得答 ...
- HTML5标准简介
最近前端的群都蛮热闹的,但我发现多数讨论的是javascript和css相关的问题,仿佛大家在努力创建各种交互.样式的时候,忘却了这一切的基础 – HTML. 其实我很喜欢HTML,觉得这个语言远比X ...
- 详细介绍ASP.NET页面间数据传递的使用方法
源码:http://www.jinhusns.com/Products/Download/?type=xcj 在ASP.NET中,页面间数据传递的方法有很多.下面为大家总结一下,页面间数据传递的方法. ...
- asp.net 网页抓取内容
网页抓取代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; // using ...
- sqlserver工作日常使用sql--持续完善中
select STUFF('232',1,1,'')结果为32,从第一个字符开始去掉一个字符,及去掉 select CONCAT('-','asd')结果为-asd,连接两个字符串 select co ...
- 重新想象 Windows 8 Store Apps (39) - 契约: Share Contract
[源码下载] 重新想象 Windows 8 Store Apps (39) - 契约: Share Contract 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 ...
- 金山快盘有Linux版了
似乎是2013-09-29最早发出的新闻. 怎么会没有一点传播呢,难道这么不招待见吗? 出品方是中科麒麟. http://www.ubuntukylin.com/applications/showim ...
- HDU 1028(母函数)
Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.QHand In HandOnline ...