memcached
http://www.danga.com/memcached/ <o:p></o:p>
memcached是一个Client Server结构的远程Cache实现。
Server是用C写的,提供了多种语言的客户端API,包括Java, C#, Ruby, Python, PHP, Perl, C等多种语言。
memcached主要使用在Shared Nothing Architecture中。应用程序通过客户端API,从memcached server存取数据。
典型的应用,比如,用memcached作为数据库缓存。
也常有这样的用法,用memcached存放HTTP Session的数据。具体做法是包装Session Interface,截获setAttribute(), getAttribute()方法。 <o:p></o:p>
MemcachedSessionWrapper {
Object getAttribute( key ){
return memcachedClient.get (session.getId() + key);
}
void setAttribute( key, value ){
memcachedClient.setObject(session.getId() + key, value);
}
} <o:p></o:p>
不同计算机上的应用程序通过一个IP地址来访问memcahced Server。
同一个key对应的数据,只存在于一台memcached server的一份内存中。
memcached server也可以部署在多台计算机上。Memcached通过key的hashcode来判断从哪台memcached server上存取数据数据。我们可以看到,同一个key对应的数据,还是只存在于一台memcached server的一份内存中。
所以,memcached不存在数据同步的问题。这个特性很关键,我们后面讲到Cluster Cache的时候,就会涉及到数据同步的问题。
memcached由于是远程Cache,要求放到Cache的Key和Value都是Serializable。
远程Cache,最令人担心的网络通信开销。据有经验的人说,memcached网络通信开销很小。
memcached的API设计也是远程通信友好的,提供了getMulti()等高粒度的调用方法,能够批量获取数据,从而减少网络通信次数。 <o:p></o:p>
分享到:
相关推荐
在分布式系统中,Session管理是一个重要的挑战,尤其是在高并发、多服务器环境下的Web应用。Memcached,作为一个高性能、分布式的内存对象缓存系统,被广泛用于解决这个问题。本篇文章将详细探讨如何使用Memcached...
这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展性和可用性。 在Java Web开发中,Session是服务器端用于存储用户状态信息的关键技术。然而,当使用多台Tomcat服务器构建集群时,每...
在分布式系统中,session共享是一个重要的问题,因为用户在访问不同的服务器节点时,需要保持登录状态和其他会话信息的一致性。Memcached作为一个高性能的分布式内存对象缓存系统,常被用来解决这个问题。 描述中...
在构建分布式系统时,Session管理是一个重要的环节,因为它涉及到用户状态的保持和一致性。本文主要探讨了五种在集群/分布式环境下处理Session的策略,旨在提高用户体验并确保系统的稳定运行。 **1. 粘性Session** ...
分布式 Session 方案是指在分布式系统中,为了解决 Session 问题而采用的方法。 Session 是 Web 应用程序中保存用户信息的机制,当用户请求时,服务器需要记录用户的信息,以便在后续请求中使用。然而,在分布式系统...
`memcached-session-manager`通过将用户的session数据存储在Memcached服务器上,而不是每个单独的Tomcat实例的内存中,实现了跨服务器的session共享。这意味着无论用户请求哪个服务器,他们的session数据都能被正确...
在分布式系统中,Session共享是一个常见的挑战,尤其是在多个应用服务器如Tomcat之间。为了实现这一目标,我们可以结合Nginx反向代理服务器和memcached内存缓存系统来达到高效、可靠的Session共享。以下是对这个主题...
1. **会话状态集中存储:** 在分布式系统中,客户端的Session数据通常不会保存在本地服务器上,而是采用集中式存储方式,如Redis、Memcached等。 2. **负载均衡机制:** 使用负载均衡器时,客户端可能被分配到不同的...
标题中的“Memcached分布式缓存服务替换Session解决方案”是指一种使用Memcached作为分布式缓存来管理Web应用中的Session状态的方法,以替代传统的基于服务器端Session存储的策略。这种方案主要针对的是多服务器环境...
总的来说,通过使用Memcached和适当的Java库,我们可以有效地解决分布式系统中的Session共享问题,提高系统的可扩展性和用户体验。在开发过程中,确保正确地配置和集成这些jar包,是实现Session和Memcached共享的...
在IT行业中,尤其是在分布式系统和Web应用开发领域,session共享是一个关键问题,特别是在集群环境中。当使用多个服务器来处理用户请求时,确保用户的session数据在所有服务器之间保持一致至关重要。"memcached+...
在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为应用服务器处理Java Servlet和JSP,而Memcached用于存储和共享Session数据。这个配置可以有效地分发用户请求,提高...
"工具"标签则表明`memcached-session-manager`是一个实用工具,用于在Java Web应用中处理session的持久化和分布式存储,可能是通过提供API或者配置选项来实现。 **文件名解析:** "tomcat7"可能是教程中涉及的一个...
这种方式可以解决单个服务器或集群中session共享的问题,提高系统的可扩展性和可用性。本文将详细介绍MSM(Memcached_Session_Manager)的使用,包括所需的jar包和在Tomcat中的配置。 MSM(Memcached_Session_...
为了解决这个问题,开发人员常常采用第三方解决方案,如将Session数据存储到内存缓存系统,如memcached。这就是"Tomcat memcached Session依赖jar包"的主题。 Memcached是一个高性能、分布式的内存对象缓存系统,...
6. **容错与故障转移**:由于 Memcached 是分布式系统,如果一个节点失效,memcached-session-manager 可以自动切换到其他可用节点,提供了一定程度的容错能力。 7. **扩展性**:随着Web应用规模的扩大,只需添加更...
在分布式系统中,Session共享是一个非常重要的问题。多台Tomcat服务的Session共享是指在多台Tomcat服务器之间共享用户会话信息,以便在用户在不同的服务器之间切换时,能够保持会话的一致性。Memcached是一种高性能...
标题提到的"jar包.zip"包含了处理Nginx Session一致性问题的解决方案,即使用memcached作为Session共享存储。Memcached是一款高性能、分布式的内存对象缓存系统,常用于缓解数据库压力,提高网站性能。在Session管理...
总的来说,通过memcached与Tomcat共享session,可以有效地在分布式环境中解决Session管理的问题,提高系统的可扩展性和可用性。实现这一功能需要对memcached、Tomcat配置、Java客户端库以及分布式系统原理有一定的...
注意,虽然Memcached提供了一种快速的session存储解决方案,但也要考虑其局限性,如数据持久化、安全性等问题。在实际应用中,可能需要结合其他技术,如Redis或数据库,以提供更全面的解决方案。