大名鼎鼎的memcached 不用多做介绍,下面是引用memcached全面剖析中的介绍。(附件中有全文 强烈推荐)
memcached是什么?
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在
已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数
据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大
影响。
这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的
是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展
性。
这里我使用的是window版的memcached 1.2.1
客户端采用java的 XMemcached 1.2.5
附件中都提供下载。
安装memcached非常简单
‘c:\memcached\memcached.exe -d install’ 安装
‘c:\memcached\memcached.exe -p 11211 -m 16 -d start’ 启动
memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
Xmemcached需要依赖slf4j这个日志包
由于memcached使用的时候太简单了 所以这里只给出简单测试 至于add set replace的区别 还是建议大家去看memcached全面剖析
测试
MemcachedClientBuilder builder = new XMemcachedClientBuilder(
AddrUtil.getAddresses("localhost:11211"));
@Test
@Ignore
public void testSet(){
try {
MemcachedClient memcachedClient = builder.build();
memcachedClient.set("hello", 0, "Hello,xmemcached");
String value = memcachedClient.get("hello");
System.out.println("hello=" + value);
memcachedClient.delete("hello");
value = memcachedClient.get("hello");
System.out.println("hello=" + value);
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
}
@Test
@Ignore
public void testReplaceAndAdd(){
try {
MemcachedClient memcachedClient = builder.build();
memcachedClient.replace("hello", 0, "hello.world!");
System.out.println("hello = "+memcachedClient.get("hello"));
memcachedClient.add("hello", 0, "hello,world!");
System.out.println("hello = "+memcachedClient.get("hello"));
memcachedClient.add("hello", 0, "hello,world! update");
System.out.println("hello = "+memcachedClient.get("hello"));
memcachedClient.set("hello", 0, "hello,world! update");
System.out.println("hello = "+memcachedClient.get("hello"));
memcachedClient.delete("hello");
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
}
@Test
@Ignore
public void test(){
MemcachedClientBuilder mcb = new XMemcachedClientBuilder(AddrUtil.getAddresses("localhost:11211"));
try {
MemcachedClient mclient = mcb.build();
mclient.set("a", 0, "aaa");
mclient.set("b", 0, "bbb");
mclient.set("c", 0, "ccc");
Collection<String> collection = new ArrayList<String>();
collection.add("a");
collection.add("b");
collection.add("c");
Map<String, String> aa = mclient.get(collection);
Iterator<String> iter = aa.keySet().iterator();
while(iter.hasNext()){
String value = iter.next();
System.out.println(value+" = "+aa.get(value));
}
mclient.shutdown();
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
Memcached是一种高性能、分布式内存对象缓存系统,广泛应用于Web应用中...而提供的PDF文档和PPTX文件,将更深入地介绍Memcached的各个方面,包括基础概念、内存管理和集群搭建等,对于学习和掌握Memcached非常有帮助。
描述提到"适合学习memcached和需要安装及测试的memcached学习使用者",这意味着提供的资源适用于初学者和有经验的用户,他们可能想要安装、配置memcached,并进行功能测试。 **memcached介绍** Memcached是一种高...
**memcached学习资料** Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站响应速度。它通过在内存中存储数据来提供快速访问,使得频繁请求的数据无需每次都从...
本篇学习笔记将重点介绍如何在Java环境中使用gwhalin提供的Memcached客户端进行开发。gwhalin的Memcached Java客户端是一个轻量级、高性能的库,使得Java开发者可以轻松地与Memcached服务器进行交互。 ### 一、...
### Memcached学习总结 #### 一、Memcached简介 ##### 1.1 什么是Memcached? Memcached是一款由Danga Interactive公司(LiveJournal的技术团队)所研发的分布式内存对象缓存系统,它最初是为了减轻数据库负载和...
### Memcached中文学习文档知识点详解 #### 一、Memcached简介 Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用程序通过减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库访问的频率...
│ alisoft-xplatform-asf-cache-2.4.jar │ list.txt │ Memcached+Study.pdf │ memcached全面剖析.zip │ └─memcached全面剖析 memcached.pdf
**标题:“danga memcached使用”** memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于...理解其工作原理,掌握安装、配置和使用方法,以及通过源码学习,能帮助开发者更好地利用这一工具优化应用性能。
“memcached安装及java应用使用memcached”这一标题暗示了我们要讨论的是一个关于分布式内存缓存系统——memcached的安装过程以及如何在Java应用程序中使用它。Memcached是一个高性能、轻量级的分布式内存对象缓存...
本资源针对Memcached的学习,包含了服务端部署、客户端使用以及实战代码示例,为开发者提供了全面的了解和实践途径。 首先,我们要理解Memcached的基本工作原理。Memcached基于键值对存储模型,将数据暂存于内存中...
通过案例研究,我们可以了解到如何在服务器配置、数量、memcached进程管理、客户端使用方法等方面进行优化。此外,memcached的兼容性也让它能够适用于多种不同的应用程序,比如Tokyo Tyrant。 总结而言,memcached...
memcached 学习必备
Memcached 分布式缓存学习 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。 ...
本实例将带你深入了解如何安装 Memcached 客户端,并学习如何使用它来缓存数据以及清除缓存内容。 ### 一、安装 Memcached 在开始使用 Memcached 之前,你需要先在服务器上安装它。安装过程可能因操作系统而异,...
压缩包中的文档可能包括了Memcached的官方文档、用户手册、教程、示例代码等,这些都是学习和解决Memcached使用过程中问题的宝贵资源。建议仔细阅读和实践,以便深入理解和掌握Memcached。 总之,Memcached作为一款...
总的来说,这份压缩包资料为学习和使用Memcached提供了丰富的资源,不仅有理论知识,还有实践示例,对于理解分布式缓存、优化Web应用性能以及掌握一致性哈希算法都有很大的帮助。学习者可以通过这些材料深入理解...
通过`memcached_test`这个示例,你可以学习到如何在C语言环境中有效地使用`memcached`,包括连接、存储、检索和管理数据。这对于理解`memcached`的工作原理以及在实际项目中应用是非常有帮助的。在实践中,可以根据...
memcached是什么? memcached的特征 协议简单 基于libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 ...使用Cache::Memcached连接memcached 保存数据 获取数据 删除数据 增一和减一操作 总结