这个想法来源于最近的一个项目需求,我先来说下需求吧,这个需求其实很简单:假设现在我有10个广告,他们显示顺序暂且定位顺序显示,就是1,2,3...10,那么用户1第一次访问看到第一个广告内容,第二次访问就看到第二个,用户2第一次访问看到第一个,第二次访问看到第二个,依次类推。
需求介绍完了,这个需求如何实现呢?一开始我想的很简单,用一个static类型的变量来保存用户每次访问的位置,即第一次访问这个变量就保存1的值,然后做++,下次来访问就是2了,访问到最后一个就重置到第一个,或者你用求余数的方法,无论如何处理,这样做是能够记录位置的,我已经在tomcat下做过测试,没问题。但是接着问题就来了,这样做无法区分用户,什么意思呢?用一个static变量来保存位置,虽然能够做到内存共享,但是不同用户取这个变量的值都是同一块内存空间,也就是说,如果我访问过一次,显示了第一个广告,下次你再访问就是直接看到第二个广告了。这样显然是不对的,而且这还是单服务器的情况下,如果是集群呢?10台服务器轮询,那怎么办?
现在就要说下memcached了,大家都知道,memcached的服务端可以配置到一台服务器上面来做缓存,如果有多台服务器轮询访问,相当于是多个client访问同一个server,这样利用memcached的特性,我能够把内存空间做到独立出来,用同一个内存区域来保存我要的对象。
那么针对这个需求的业务逻辑处理,我想的是我用用户的id来拼装key,用访问广告位置来做value,但是细节上面需要再完善,这样大体可以满足我一开始提的需求,这只是个想法,欢迎大家一起讨论。
分享到:
相关推荐
Memcached,一个高性能、分布式的内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。本文将深入探讨Memcached的1.5.11版本,解析其核心特性与工作原理。 一、Memcached简介 ...
在构建高性能、高可用性的Web应用系统时,`nginx`、`tomcat`和`memcached`这三者经常被组合使用。`nginx`作为前端代理服务器,`...开发者可以通过导入这些`jar`包,方便地在`tomcat`应用中实现与`memcached`的集成。
Memcached是一款开源、高性能、分布式的内存对象缓存系统,它设计的目标是简化数据存储和检索过程,通过将数据存储在内存中,避免了磁盘I/O操作,从而提高了数据访问的速度。C# 是一种广泛使用的编程语言,尤其在...
在这个场景中,我们关注的是如何在Tomcat 7集群中配置和使用memcached以及配合Nginx进行负载均衡。Memcached是一种分布式内存对象缓存系统,可以提高Web应用的性能,而Nginx则是一个高性能的HTTP和反向代理服务器,...
标题中的“tomcat7+整合memcached jar包集合”指的是在Tomcat 7这个流行的Java应用服务器上集成Memcached缓存系统的过程。Memcached是一种分布式内存对象缓存系统,广泛用于减轻数据库压力,提高Web应用的性能。在这...
首先,需要在所有服务器上安装并启动Memcached服务,然后在每个Tomcat的`context.xml`配置文件中,添加一个`MemcachedSessionManager`的`Manager`标签,配置Memcached服务器的地址、端口以及session的超时时间。...
5. **安装和配置Memcached**:在每个需要缓存数据的服务器上安装Memcached,然后在应用代码中集成Memcached客户端库,以便于读写缓存。 6. **集群Memcached**:通过一致性哈希或其他分布式算法,确保数据在多个...
在IT行业中,缓存系统是提高应用程序性能的关键技术之一,Memcached就是这样一款高效、轻量级的分布式内存对象缓存系统。本项目“向memcached中保存Java实体需注意的问题 Demo”聚焦于如何将Java对象存储到Memcached...
- **Session共享**:通过`MemcachedBackupSessionManager`,Tomcat可以将Session数据存储到Memcached中,确保集群中所有实例都能访问到相同的Session信息。 - **JVM Route**:在每个Tomcat的`server.xml`中设置...
Memcached Session Manager(MSM)是基于Java的开源项目,其主要功能是将Web应用中的session数据存储在Memcached服务器集群上,而非传统的本地内存或者数据库中。这样做的好处在于,session数据可以被多个应用服务器...
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及...
Memcached是一款高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于缓解数据库的负载。在Java环境中,我们常常使用Java客户端库来与Memcached服务器进行交互。这个文档将深入探讨"performance"分支的Java...
在构建高性能、高可用性的Web应用系统时,配置Tomcat集群和负载均衡是至关重要的步骤。...在实际操作中,可能还需要根据具体需求调整Nginx的负载策略(如轮询、权重分配等)和MSM的配置参数,以达到最佳效果。
在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为应用服务器处理Java Servlet和JSP,而Memcached用于存储和共享Session数据。这个配置可以有效地分发用户请求,提高...
本知识点聚焦于如何在Windows环境下,利用Nginx作为反向代理,Memcached进行session共享,以及Tomcat作为Java应用服务器来搭建这样一个集群。这个配置确保了用户在集群中的任何一台服务器上的操作都能被其他服务器...
要使用Memcached,需要安装并启动服务,然后在应用程序中集成Memcached客户端库,例如java_memcached_client,这个库提供了与Memcached交互的Java接口。 3. **Tomcat**: Tomcat是Apache软件基金会的Java Servlet...
在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,而Memcached作为分布式缓存来处理session共享问题。本文将详细讲解如何利用Nginx、Tomcat和Memcached...
Memcached是一款轻量级、高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据访问速度。它通过在内存中存储数据来提供高速的数据访问服务,适用于读取密集型的应用场景。 Libevent...