`

MemCached的学习使用

    博客分类:
  • web
阅读更多
大名鼎鼎的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 学习资料(memcached Memcached使用手册 Memcached源码剖析笔记)

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...

    网上收集最新的Memcached学习资料

    Memcached是一种高性能、分布式内存对象缓存系统,广泛应用于Web应用中...而提供的PDF文档和PPTX文件,将更深入地介绍Memcached的各个方面,包括基础概念、内存管理和集群搭建等,对于学习和掌握Memcached非常有帮助。

    memcached服务端已经多个客户端

    描述提到"适合学习memcached和需要安装及测试的memcached学习使用者",这意味着提供的资源适用于初学者和有经验的用户,他们可能想要安装、配置memcached,并进行功能测试。 **memcached介绍** Memcached是一种高...

    memcached学习资料

    **memcached学习资料** Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站响应速度。它通过在内存中存储数据来提供快速访问,使得频繁请求的数据无需每次都从...

    Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(1)-介绍及使用

    本篇学习笔记将重点介绍如何在Java环境中使用gwhalin提供的Memcached客户端进行开发。gwhalin的Memcached Java客户端是一个轻量级、高性能的库,使得Java开发者可以轻松地与Memcached服务器进行交互。 ### 一、...

    memcached学习总结

    ### Memcached学习总结 #### 一、Memcached简介 ##### 1.1 什么是Memcached? Memcached是一款由Danga Interactive公司(LiveJournal的技术团队)所研发的分布式内存对象缓存系统,它最初是为了减轻数据库负载和...

    memcached中文学习文档

    ### Memcached中文学习文档知识点详解 #### 一、Memcached简介 Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用程序通过减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库访问的频率...

    memcached学习资料----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    │ alisoft-xplatform-asf-cache-2.4.jar │ list.txt │ Memcached+Study.pdf │ memcached全面剖析.zip │ └─memcached全面剖析 memcached.pdf

    danga memcached使用

    **标题:“danga memcached使用”** memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于...理解其工作原理,掌握安装、配置和使用方法,以及通过源码学习,能帮助开发者更好地利用这一工具优化应用性能。

    memcached安装及java应用使用memcached

    “memcached安装及java应用使用memcached”这一标题暗示了我们要讨论的是一个关于分布式内存缓存系统——memcached的安装过程以及如何在Java应用程序中使用它。Memcached是一个高性能、轻量级的分布式内存对象缓存...

    分布式缓存系统Memcached学习心得.zip

    本资源针对Memcached的学习,包含了服务端部署、客户端使用以及实战代码示例,为开发者提供了全面的了解和实践途径。 首先,我们要理解Memcached的基本工作原理。Memcached基于键值对存储模型,将数据暂存于内存中...

    memcached全面剖析.pdf

    通过案例研究,我们可以了解到如何在服务器配置、数量、memcached进程管理、客户端使用方法等方面进行优化。此外,memcached的兼容性也让它能够适用于多种不同的应用程序,比如Tokyo Tyrant。 总结而言,memcached...

    memcached学习文档

    memcached 学习必备

    Memcached分布式缓存学习.doc

    Memcached 分布式缓存学习 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。 ...

    memcached实例

    本实例将带你深入了解如何安装 Memcached 客户端,并学习如何使用它来缓存数据以及清除缓存内容。 ### 一、安装 Memcached 在开始使用 Memcached 之前,你需要先在服务器上安装它。安装过程可能因操作系统而异,...

    Memcached实例与文档

    压缩包中的文档可能包括了Memcached的官方文档、用户手册、教程、示例代码等,这些都是学习和解决Memcached使用过程中问题的宝贵资源。建议仔细阅读和实践,以便深入理解和掌握Memcached。 总之,Memcached作为一款...

    memcached-笔记资料

    总的来说,这份压缩包资料为学习和使用Memcached提供了丰富的资源,不仅有理论知识,还有实践示例,对于理解分布式缓存、优化Web应用性能以及掌握一致性哈希算法都有很大的帮助。学习者可以通过这些材料深入理解...

    memcached开发完整demo

    通过`memcached_test`这个示例,你可以学习到如何在C语言环境中有效地使用`memcached`,包括连接、存储、检索和管理数据。这对于理解`memcached`的工作原理以及在实际项目中应用是非常有帮助的。在实践中,可以根据...

    memCached 学习

    memcached是什么? memcached的特征 协议简单 基于libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 ...使用Cache::Memcached连接memcached 保存数据 获取数据 删除数据 增一和减一操作 总结

Global site tag (gtag.js) - Google Analytics