首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >减少web应用服务器负载的缓存策略

减少web应用服务器负载的缓存策略
EN

Stack Overflow用户
提问于 2012-11-08 07:29:21
回答 2查看 1.9K关注 0票数 3

and服务器应用服务器之间应用缓存层的好工具是什么?

基本要求:

  1. 应用程序服务器需要一种方法从缓存中删除项,并将项放入具有过期日期的缓存中。
  2. way服务器需要一种方法,以非常轻、快速的方式将项从缓存中提取出来,而无需在应用服务器上分配线程。
  3. 它不一定需要是分布式缓存(从多台机器上访问),但不会有任何伤害。

我考虑过的策略:

  1. 静态文件缓存。请求进来,得到散列,如果文件存在,我们提供它,如果没有,我们将请求路由到应用服务器。高I/O是由于并发性导致的问题或文件锁定问题吗?由于内存中的内核级缓存,文件系统实际上非常快,这是否准确。
  2. 使用键值DB,如mongodb,或redis。这将将完成的HTML/JSON片段存储在db中。如果需要的话,app服务器将能够从DB读取并路由到app服务器。应用服务器将配备从数据库中插入/删除。
  3. 内存缓存,如memcached或Varnish (不太了解Varnish)。我对memcached唯一关心的是,我想要在任何给定的时间缓存3-10 in的数据,这比我在内存中安全分配的数据还要多。memcached有方法溢出到文件系统吗?

在尝试这种类型的缓存层时,对一些技术和缺陷有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-11 09:12:36

您还可以在内存数据网格中使用GigaSpaces XAP缓存甚至托管web应用程序。您可以仅选择缓存选项,也可以将两者的功能结合起来,从而在其他方面获得对您的环境的单一管理。

与您建议的键值对方法不同,使用GigaSpaces XAP,您将能够拥有复杂的查询,如SQL、基于对象的庙宇等。在缓存场景中,您应该更具体地检查本地缓存相关特性。

局部缓存

Web容器

免责声明,我是GigaSpaces的开发人员。

艾坦

票数 3
EN

Stack Overflow用户

发布于 2013-08-13 04:09:12

为了回答这一问题,来自使用一致性(http://coherence.oracle.com/)的POV:

1.应用程序服务器需要一种方法从缓存中删除项,并在缓存中放置具有过期日期的项。

代码语言:javascript
运行
复制
// remove one item from cache
cache.remove(key);

// remove multiple items from cache
cache.keySet().removeAll(keylist);

2. way服务器需要一种方法,以非常轻、快速的方式将项从缓存中提取出来,而无需在应用服务器上分配线程。

代码语言:javascript
运行
复制
// access one item from cache
Object value = cache.get(key);

// access multiple items from cache
Map mapKV = cache.getAll(keylist);

3.它不一定需要是分布式缓存(可从多台计算机访问),但不会造成伤害。

  • 弹性的。只需添加节点。自动发现。自动负载平衡。没有数据丢失。没有打扰。每次添加节点时,都会获得更多的数据容量和更多的吞吐量。
  • 自动高可用性(HA)。杀死一个进程,没有数据丢失。杀死一台服务器,没有数据丢失。

内存缓存,如memcached或Varnish (不太了解Varnish)。我对memcached唯一关心的是,我想要在任何给定的时间缓存3-10 in的数据,这比我在内存中安全分配的数据还要多。memcached有方法溢出到文件系统吗?

  • 同时使用RAM和闪存。透明的。可以轻松地处理每个一致性节点的10s甚至10S千兆字节(例如,每个物理服务器的TB或更多)。

为了充分披露,我在甲骨文工作。在这篇文章中表达的意见和意见是我自己的,并不一定反映我的雇主的意见或意见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13284429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档