- 浏览: 150933 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (87)
- seam/jsf (22)
- java (24)
- spring (6)
- hibernate (2)
- Mysql (4)
- web (1)
- JMS (0)
- 计算机(computer) (1)
- linux (3)
- eclipse (4)
- Javascript (1)
- xstream (3)
- JPA (2)
- 汇编 (1)
- HttpClient (1)
- quartz (1)
- J2EE (2)
- EJB (1)
- restful web (1)
- maven (1)
- TTServer (3)
- restlet (0)
- jquery (0)
- Firebug (0)
- jquery Masonry+Infinite-Scroll (0)
- JACOB (0)
- elasticsearch (0)
最新评论
-
tuspark:
关于ApplicationContextAware的详细介绍, ...
ApplicationContextAware -
hc_face:
应该是 环境被初始化的时候,bean 也一并被初始化吧。先后顺 ...
ApplicationContextAware -
奇林醉:
有点明白了
Collections.unmodifiableList() -
tcking:
HashSet不关心迭代的次序,也就是说下一次的迭代次序可能就 ...
HashSet LinkedHashSet TreeSet -
yzhw:
我要去试试
seam前端提速
假设我们有3台memcached 服务器,server1 和server2 有3GB 的内存空间,server3 有2GB 的内存空间.下面程序说明怎么来创建客户端. import com.danga.MemCached.*;public class MyClass {// 创建一个 memcached 客户端对象protected static MemCachedClient mcc = new MemCachedClient();// 创建 memcached连接池static{ // 指定memcached服务地址String[] servers ={ "server1.mydomain.com:1121","server2.mydomain.com:1121", "server3.mydomain.com:1121" };// 指定memcached服务器负载量 Integer[] weights ={ 3, 3, 2 };// 从连接池获取一个连接实例SockIOPool pool = SockIOPool.getInstance();// 设置服务器和服务器负载量pool.setServers( servers );pool.setWeights( weights );// 设置一些基本的参数//设置初始连接数5 最小连接数 5 最大连接数 250//设置一个连接最大空闲时间6小时pool.setInitConn( 5 );pool.setMinConn( 5 );pool.setMaxConn( 250 );pool.setMaxIdle( 1000 * 60 * 60 * 6 );// 设置主线程睡眠时间// 每隔30秒醒来 然后// 开始维护 连接数大小pool.setMaintSleep( 30 );// 设置tcp 相关的树形// 关闭nagle算法// 设置 读取 超时3秒钟 set the read timeout to 3 secs// 不设置连接超时pool.setNagle( false );pool.setSocketTO( 3000 );pool.setSocketConnectTO( 0 );// 开始初始化 连接池pool.initialize();// 设置压缩模式//如果超过64k压缩数据mcc.setCompressEnable( true );mcc.setCompressThreshold( 64 * 1024 );}public static void examples() {mcc.set( "foo", "This is a test String" );String bar = mcc.get( "foo" );}}
MemCachedClient 类 常用的方法说明
创建 client对象 设置参数:
MemCachedClient mc = new MemCachedClient();
//压缩模式
mc.setCompressEnable(true);
// 如果 cache数据 大于4 KB 就启用压缩
mc.setCompressThreshold(4096);
// 基本类型tostring方法
// 通常不需要设置
mc.setPrimitiveAsString(true);
存储一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Object value = SomeClass.getObject();mc.set(key, value);
用客户端hashcode 存储一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Object value = SomeClass.getObject();Integer hash = new Integer(45);mc.set(key, value, hash);set方法:在cache中存储一个指定对象 add 和replace 方法功能差不多 add -- 如果不存在 这个key的对象,将会存储一个对象到cache中 replace --只有当存在指定key对象的时候 会覆盖已有对象
删除一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";mc.delete(key);
结合hashcode 删除一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Integer hash = new Integer(45);mc.delete(key, hashCode);
怎么cache计数,增 减计数:
MemCachedClient mc = new MemCachedClient();String key = "counterKey";mc.storeCounter(key, new Integer(100));System.out.println("counter after adding 1: " mc.incr(key));System.out.println("counter after adding 5: " mc.incr(key, 5));System.out.println("counter after subtracting 4: " mc.decr(key, 4));System.out.println("counter after subtracting 1: " mc.decr(key));
利用客户端的hashcode存储计数 增减 计数:
MemCachedClient mc = new MemCachedClient();String key = "counterKey";Integer hash = new Integer(45);mc.storeCounter(key, new Integer(100), hash);System.out.println("counter after adding 1: " mc.incr(key, 1, hash));System.out.println("counter after adding 5: " mc.incr(key, 5, hash));System.out.println("counter after subtracting 4: " mc.decr(key, 4, hash));System.out.println("counter after subtracting 1: " mc.decr(key, 1, hash));
获取一个对象:
MemCachedClient mc = new MemCachedClient();String key = "key";Object value = mc.get(key);
用客户端hashcode获取一个对象:
MemCachedClient mc = new MemCachedClient();String key = "key";Integer hash = new Integer(45);Object value = mc.get(key, hash);
从cache 中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys ={ "key", "key1", "key2" };Mapvalues = mc.getMulti(keys);
用客户端hashcode() 从cache中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys = { "key", "key1", "key2" };Integer[] hashes ={ new Integer(45), new Integer(32), new Integer(44) };Map<Object> values = mc.getMulti(keys, hashes);
清空所有的对象
MemCachedClient mc = new MemCachedClient();mc.flushAll();
得到服务器memcached的状态信息
MemCachedClient mc = new MemCachedClient();Map stats = mc.stats();
注意点
1:Failover/Failback
当一个memcached服务器失效的时候客户端默认会failover另一个服务去.
如果失效的服务器 恢复运行,客户端会返回到原来连接的服务器.
如果你不想用这个功能 设置下面的参数
pool.setFailover( false );
pool.setFailback( false );
2:序列化
Boolean
Byte
String
Character
StringBuffer
StringBuilder
Short
Long
Double
Float
Date
java默认的类型没有实现序列化 可以设置
mcc.setPrimitiveAsString( true )替代.
Meetup.com实践过程中得出的一个经验 ,项目中model 对象implement
Externalizable 实现序列化,可以节省cache 对象的大小。从而节省网络带宽和内存空间。
from:http://hi.baidu.com/asheng99012/blog/item/4c613816676c7756f2de327d.html
MemCachedClient 类 常用的方法说明
创建 client对象 设置参数:
MemCachedClient mc = new MemCachedClient();
//压缩模式
mc.setCompressEnable(true);
// 如果 cache数据 大于4 KB 就启用压缩
mc.setCompressThreshold(4096);
// 基本类型tostring方法
// 通常不需要设置
mc.setPrimitiveAsString(true);
存储一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Object value = SomeClass.getObject();mc.set(key, value);
用客户端hashcode 存储一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Object value = SomeClass.getObject();Integer hash = new Integer(45);mc.set(key, value, hash);set方法:在cache中存储一个指定对象 add 和replace 方法功能差不多 add -- 如果不存在 这个key的对象,将会存储一个对象到cache中 replace --只有当存在指定key对象的时候 会覆盖已有对象
删除一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";mc.delete(key);
结合hashcode 删除一个对象:
MemCachedClient mc = new MemCachedClient();String key = "cacheKey1";Integer hash = new Integer(45);mc.delete(key, hashCode);
怎么cache计数,增 减计数:
MemCachedClient mc = new MemCachedClient();String key = "counterKey";mc.storeCounter(key, new Integer(100));System.out.println("counter after adding 1: " mc.incr(key));System.out.println("counter after adding 5: " mc.incr(key, 5));System.out.println("counter after subtracting 4: " mc.decr(key, 4));System.out.println("counter after subtracting 1: " mc.decr(key));
利用客户端的hashcode存储计数 增减 计数:
MemCachedClient mc = new MemCachedClient();String key = "counterKey";Integer hash = new Integer(45);mc.storeCounter(key, new Integer(100), hash);System.out.println("counter after adding 1: " mc.incr(key, 1, hash));System.out.println("counter after adding 5: " mc.incr(key, 5, hash));System.out.println("counter after subtracting 4: " mc.decr(key, 4, hash));System.out.println("counter after subtracting 1: " mc.decr(key, 1, hash));
获取一个对象:
MemCachedClient mc = new MemCachedClient();String key = "key";Object value = mc.get(key);
用客户端hashcode获取一个对象:
MemCachedClient mc = new MemCachedClient();String key = "key";Integer hash = new Integer(45);Object value = mc.get(key, hash);
从cache 中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys ={ "key", "key1", "key2" };Mapvalues = mc.getMulti(keys);
用客户端hashcode() 从cache中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys = { "key", "key1", "key2" };Integer[] hashes ={ new Integer(45), new Integer(32), new Integer(44) };Map<Object> values = mc.getMulti(keys, hashes);
清空所有的对象
MemCachedClient mc = new MemCachedClient();mc.flushAll();
得到服务器memcached的状态信息
MemCachedClient mc = new MemCachedClient();Map stats = mc.stats();
注意点
1:Failover/Failback
当一个memcached服务器失效的时候客户端默认会failover另一个服务去.
如果失效的服务器 恢复运行,客户端会返回到原来连接的服务器.
如果你不想用这个功能 设置下面的参数
pool.setFailover( false );
pool.setFailback( false );
2:序列化
Boolean
Byte
String
Character
StringBuffer
StringBuilder
Short
Long
Double
Float
Date
java默认的类型没有实现序列化 可以设置
mcc.setPrimitiveAsString( true )替代.
Meetup.com实践过程中得出的一个经验 ,项目中model 对象implement
Externalizable 实现序列化,可以节省cache 对象的大小。从而节省网络带宽和内存空间。
from:http://hi.baidu.com/asheng99012/blog/item/4c613816676c7756f2de327d.html
发表评论
-
在线安装jdk
2014-08-12 16:55 0yum -y list java* yum -y insta ... -
java敏感字
2013-04-07 16:25 0public class KeywordFilter { ... -
java
2012-11-27 15:13 0http://smallbee.iteye.com/blog/ ... -
Top 10
2012-08-17 17:41 0很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网 ... -
数字签名
2011-12-02 10:45 0今天,我读到一篇好文章。 它用图片通俗易懂 ... -
jmock
2011-10-17 14:54 1197java.lang.IllegalArgumentExcept ... -
正则口诀
2011-05-03 22:29 1206正则是每个程序员绕不开的堡垒,只有把它攻下来。我觉得 ... -
Ear、Jar、War文件之间
2011-03-23 22:37 1200在文件结构上,三者并没有什么不同,它们都采用zip或jar档案 ... -
Cannot create a generic array of T
2011-03-17 18:08 1952public static <T> T[] cre ... -
Java 位运算符
2011-03-09 22:48 992Java 定义的位运算(bitwise operators ) ... -
虚拟机中linux安装jdk
2011-01-15 17:38 2886主机:xp 虚拟机:VMware Workstation 7 ... -
tcdatabase-2
2010-11-03 22:33 936搜索操作:根据“字段 ... -
tcdatabase
2010-11-03 22:32 1084为何写tcdatabase tcdataba ... -
Collections.unmodifiableList()
2010-10-27 16:07 3055在《重构——改善既有代码的设计》一书中,有一种重构手法叫E ... -
java字节码
2010-10-11 07:13 1003这一两年,在JVM上使用 ... -
Comparator和Comparable在排序中的应用
2010-09-17 15:49 896Comparator和Comparable在排序中的应用 当 ... -
浅复制与深复制
2010-09-17 15:19 8331.浅复制与深复制概念 ... -
apache.commons.beanutils.BeanUtils
2010-09-03 10:11 1470该class提供了一系列的静态方法操作业已存在的符合JavaB ... -
java学习之路
2010-08-26 13:45 823励志一下 http://forchenyun.iteye.co ... -
black 星期四
2010-08-19 11:08 800black 星期四~~~~~~~~~~~~~~~~~~
相关推荐
在windows下编译的最新的memcached 1.6.21 由于1.4.5以后的memcached不支持windows服务。 使用第三方工具做成了windows的服务 使用说明: 1、解压rar文件 2、以管理员身份运行cmd.exe 3、然后执行service_install....
**Memcached 安装与使用详解** Memcached 是一款高性能的分布式内存缓存系统,用于在Web应用中减轻数据库负载。它将数据存储在内存中,以键值对的形式提供快速访问,尤其适用于高并发场景。Memcached 使用简单,可...
memcachedclient-2.0.1.jar 之前在网上搜了很久没搜到,所以找到了跟大家分享
3. Memcached.ClientLibrary.dll - 这是Memcached的C#客户端库,我们将在项目中直接使用这个库来与Memcached服务器通信。 4. Commons.dll - 这可能是一个自定义的通用功能库,包含了一些辅助函数,但具体功能需要...
memcached的java客户端jar包,方便调用memcached的服务
MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211)); // 存储数据 String key = "exampleKey"; String value = "exampleValue"; memcachedClient.set(key, ...
标题“java_memcached-release_1.6.zip”表明这是一个Java Memcached的版本1.6的发布包,通常包含了该版本的所有源码、编译后的jar文件以及相关的文档。用户可以通过解压这个zip文件来获取所需的内容,以便在自己的...
Memcached Java Client API详解.doc
MemcachedClient client = new MemcachedClient(new InetSocketAddress("localhost", 11211)); ``` 这里`localhost`是Memcached服务器的地址,`11211`是默认的Memcached端口号。 2. 存储数据: ```java client.set...
### Memcached Client 使用手册 #### Cache Client 接口定义与功能概述 - **ICache**:作为缓存的基础接口,提供了缓存的基本操作方法。这些方法涵盖了缓存数据的存储、检索、删除等功能,旨在为应用程序提供高效...
`memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...
- **缓存策略**:Memcached通常使用LRU(Least Recently Used)策略,当内存空间不足时,优先淘汰最近最少使用的数据。 - **数据过期**:可以为每个键设置过期时间,过期后自动删除数据,也可以设置永不过期。 - ...
**Memcached与Java实例文档详解** Memcached是一种高性能、分布式内存对象缓存系统,它能够减轻数据库的负担,提高Web应用的性能。在Java开发环境中,Memcached被广泛用于存储临时数据,提升应用响应速度。本文将...
memcached-client.php
**Memcached与Nginx整合使用详解** Memcached和Nginx是两个在Web开发中广泛应用的工具。Memcached是一款高性能、分布式内存对象缓存系统,它可以用来减轻数据库的负载,提高网站性能。而Nginx则是一款强大的、高...
压缩包中的文档可能包括了Memcached的官方文档、用户手册、教程、示例代码等,这些都是学习和解决Memcached使用过程中问题的宝贵资源。建议仔细阅读和实践,以便深入理解和掌握Memcached。 总之,Memcached作为一款...
为了便于分析memcached的源码,使用doxygen生成了这个文档
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
"memcached for java client 例子" 指的是一个使用Java语言编写的客户端库,用于与memcached缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提升Web应用的响应速度。 **...
Memcached.ClientLibrary.dll Memcached.ClientLibrary.dll