- 浏览: 333996 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
孙艳霞111:
java.lang.IllegalStateException: Argument [RedirectAttributes] is of type Model -
llnyxxzj:
如果问题未解决可以看看http://blog.360chwl. ...
Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bea -
u013810758:
楼主求帮助类 ReflectionUtils,Hibernat ...
BaseDao可以这样设计 -
rankx:
你好,楼主可否发一份 ReflectionUtils,Hibe ...
BaseDao可以这样设计
来源http://www.blogjava.net/sword/articles/246072.html?opt=admin
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。
Memcached是什么?
Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
Memcached快么?
非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。
Danga Interactive为提升Danga Interactive的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。
Memcached的特点
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
Memcached的使用
一 、Memcached服务器端的安装 (此处将其作为系统服务安装)
下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
1 解压缩文件到c:\memcached
2 命令行输入 'c:\memcached\memcached.exe -d install'
3 命令行输入 'c:\memcached\memcached.exe -d start' ,该命令启动 Memcached ,默认监听端口为 11211
通过 memcached.exe -h 可以查看其帮助
二、客户端使用
下载memcached java client:http://www.whalin.com/memcached/#download
1 解压后将java_memcached-release_2.0.1.jar jar包添加到工程的classpath中
2 利用memcached java client 一个简单的应用
Java代码
package com.danga.MemCached.test;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class Test {
protected static MemCachedClient mcc = new MemCachedClient();
static {
String[] servers ={"192.168.40.4:12000"};
Integer[] weights = { 3 };
//创建一个实例对象SockIOPool
SockIOPool pool = SockIOPool.getInstance();
// set the servers and the weights
//设置Memcached Server
pool.setServers( servers );
pool.setWeights( weights );
// set some basic pool settings
// 5 initial, 5 min, and 250 max conns
// and set the max idle time for a conn
// to 6 hours
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 60 * 6 );
// set the sleep for the maint thread
// it will wake up every x seconds and
// maintain the pool size
pool.setMaintSleep( 30 );
// Tcp的规则就是在发送一个包之前,本地机器会等待远程主机
// 对上一次发送的包的确认信息到来;这个方法就可以关闭套接字的缓存,
// 以至这个包准备好了就发;
pool.setNagle( false );
//连接建立后对超时的控制
pool.setSocketTO( 3000 );
//连接建立时对超时的控制
pool.setSocketConnectTO( 0 );
// initialize the connection pool
//初始化一些值并与MemcachedServer段建立连接
pool.initialize();
// lets set some compression on for the client
// compress anything larger than 64k
mcc.setCompressEnable( true );
mcc.setCompressThreshold( 64 * 1024 );
}
public static void bulidCache(){
//set(key,value,Date) ,Date是一个过期时间,如果想让这个过期时间生效的话,这里传递的new Date(long date) 中参数date,需要是个大于或等于1000的值。
//因为java client的实现源码里是这样实现的 expiry.getTime() / 1000 ,也就是说,如果 小于1000的值,除以1000以后都是0,即永不过期
mcc.set( "test", "This is a test String" ,new Date(11211));
//十秒后过期
}
public static void output() {
//从cache里取值
String value = (String) mcc.get( "test" );
System.out.println(value);
}
public static void main(String[] args){
bulidCache();
output();
}
}
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。
Memcached是什么?
Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
Memcached快么?
非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。
Danga Interactive为提升Danga Interactive的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。
Memcached的特点
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
Memcached的使用
一 、Memcached服务器端的安装 (此处将其作为系统服务安装)
下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
1 解压缩文件到c:\memcached
2 命令行输入 'c:\memcached\memcached.exe -d install'
3 命令行输入 'c:\memcached\memcached.exe -d start' ,该命令启动 Memcached ,默认监听端口为 11211
通过 memcached.exe -h 可以查看其帮助
二、客户端使用
下载memcached java client:http://www.whalin.com/memcached/#download
1 解压后将java_memcached-release_2.0.1.jar jar包添加到工程的classpath中
2 利用memcached java client 一个简单的应用
Java代码
package com.danga.MemCached.test;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class Test {
protected static MemCachedClient mcc = new MemCachedClient();
static {
String[] servers ={"192.168.40.4:12000"};
Integer[] weights = { 3 };
//创建一个实例对象SockIOPool
SockIOPool pool = SockIOPool.getInstance();
// set the servers and the weights
//设置Memcached Server
pool.setServers( servers );
pool.setWeights( weights );
// set some basic pool settings
// 5 initial, 5 min, and 250 max conns
// and set the max idle time for a conn
// to 6 hours
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 60 * 6 );
// set the sleep for the maint thread
// it will wake up every x seconds and
// maintain the pool size
pool.setMaintSleep( 30 );
// Tcp的规则就是在发送一个包之前,本地机器会等待远程主机
// 对上一次发送的包的确认信息到来;这个方法就可以关闭套接字的缓存,
// 以至这个包准备好了就发;
pool.setNagle( false );
//连接建立后对超时的控制
pool.setSocketTO( 3000 );
//连接建立时对超时的控制
pool.setSocketConnectTO( 0 );
// initialize the connection pool
//初始化一些值并与MemcachedServer段建立连接
pool.initialize();
// lets set some compression on for the client
// compress anything larger than 64k
mcc.setCompressEnable( true );
mcc.setCompressThreshold( 64 * 1024 );
}
public static void bulidCache(){
//set(key,value,Date) ,Date是一个过期时间,如果想让这个过期时间生效的话,这里传递的new Date(long date) 中参数date,需要是个大于或等于1000的值。
//因为java client的实现源码里是这样实现的 expiry.getTime() / 1000 ,也就是说,如果 小于1000的值,除以1000以后都是0,即永不过期
mcc.set( "test", "This is a test String" ,new Date(11211));
//十秒后过期
}
public static void output() {
//从cache里取值
String value = (String) mcc.get( "test" );
System.out.println(value);
}
public static void main(String[] args){
bulidCache();
output();
}
}
发表评论
-
toString
2013-09-28 11:00 879implements java.lang.Cloneabl ... -
匿名内部类 是否可以继承其它类,是否可以实现接口
2013-06-25 11:20 1505Inner Class(内部类)定义在类中的类。 Nested ... -
JAVA中的接口和抽象类(转)
2013-06-25 11:16 842在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是 ... -
【解惑】领略Java内部类的“内部”
2013-06-25 10:57 844标签:Java 职场 休闲 内 ... -
Java内部类的使用小结
2013-06-25 10:51 980标签:Java 内部类 休闲 职场 内部类是指在一个外部类的内 ... -
java内部类的作用分析
2013-06-25 10:16 942提起Java内部类(Inner Class)可能很多人不太熟悉 ... -
java中Class.forName的作用
2013-06-20 11:36 1078http://www.cnblogs.com/pyrmkj/a ... -
编写你自己的单点登录(SSO)服务
2013-06-18 16:15 993http://blog.csdn.net/javachanne ... -
Windows和Linux环境下Memcached安装与配置
2013-06-08 14:32 955来源http://www.cnblogs.com/xd502d ... -
windows下安装memcached
2013-06-08 11:52 916来源http://kevin-gzhz.iteye.c ... -
Java中的值传递和引用传递
2013-05-24 17:04 888来源http://www.cnblogs.com/clara/ ... -
java中的值传递和引用传递
2013-05-24 16:51 850来源http://www.blogjava.net/jiafa ... -
java自定义注解
2013-05-24 14:23 4845来源http://www.cnblogs.com/xd502d ... -
【状态保持】会话状态Session解析以及原理分析
2013-05-21 17:16 1000来源http://www.cnblogs.com/wl ... -
log4j 详解
2013-05-21 16:16 888http://www.blogjava.net/hwpok/a ... -
静态导入Static import
2013-05-21 11:55 941http://www.cnblogs.com/mengdd/a ... -
Java 可变参数
2013-05-21 11:49 840http://www.cnblogs.com/whgw/arc ... -
java枚举类型
2013-05-21 11:45 929http://www.cnblogs.com/Fskjb/ar ... -
Struts2数据传输的背后机制:ValueStack(值栈)(转载)
2013-05-17 14:40 1094http://www.blogjava.net/freeman ... -
详细介绍Java垃圾回收机制
2013-05-17 11:16 976来源http://www.cnblogs.com/laoyan ...
相关推荐
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。 本资源包含服务端和客户端文件,以及使用教程,代码实例。
分布式缓存系统Memcached简介及开发环境搭建
现在一些.NET开发人员开始放弃ASP.NET内置的缓存机制,转而使用Memcached——一种分布式的内存缓存系统。当运行在单独的Web服务器上,你可以很容易地清除一个已经确认被改变了的缓存。可惜,ASP.NET没有一个很好的...
分布式缓存客户端MemcachedProviders最新下载
Memcached分布式缓存简介Memcached分布式缓存简介Memcached分布式缓存简介
Memcached是一个高性能的分布式的内存对象缓存系统.它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力...
运行程序后,第一次加载数据,会将数据存入缓存;点击“加载数据”按钮,这个时候,数据是从缓存中读取的。 如果要测试是否为缓存,将“"select top 100 * from UM_Function order by FuncID";”中的“order by ...
cachelot, 缓存库和分布式缓存服务器 Memcached兼容 什么是Cachelot库如果应用程序需要一个以光速工作的LRU缓存。 这就是Cachelot库的意思。库与固定预先分配的内存一起工作。 你告诉内存大小,LRU缓存已经就绪。...
Memcached分布式缓存
分布式缓存服务器的源代码,memcacaed-1.4.25,了解它,对大家以后编写一些服务器的缓存,自己的实现,会有所启发和帮助
Memcached分布式缓存学习
Memcached分布式缓存入门,全面具体讲解Memcached原理,并有相关例子,是入门学习好资料.
作为PHP开发人员,我们一般能想到的方法有页面静态化处理、防盗链、CDN内容分发加速访问、mysql数据库优化建立索引、架设apache服务器集群()、还有就是现在流行的各种分布式缓存技术:如memcached/redis;...
Memcached是什么? Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
.NET分布式缓存Memcached从入门到实战源码下载
分布式缓存 Redis + Memcached 经典面试题!
主要介绍了分布式缓存软件Memcached的Java客户端使用,Memcached在GitHub上开源,作者用其Windows平台下的版本进行演示,需要的朋友可以参考下
分布式缓存 Redis + Memcached 经典面试题!
.net下memcached 分布式缓存系统应用