Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 1GB RAM上的memcached tomcat mysql_Java_Caching_Memcached - Fatal编程技术网

Java 1GB RAM上的memcached tomcat mysql

Java 1GB RAM上的memcached tomcat mysql,java,caching,memcached,Java,Caching,Memcached,我不熟悉memcached和缓存。我有一个java web应用程序运行在Ubuntu+Tomcat+MySQL的VPS服务器上,内存为1GB 为缓存添加一个大约256MB的memcached层有意义吗?这会导致服务器负载过大吗?哪个更适合缓存呈现的html页面或数据库对象 请告知。memcached不会在您的服务器上添加任何明显的负载,但它将是您的应用程序无法使用的内存。如果您只计划在一段时间内使用一个应用服务器,那么最好使用JVM内缓存 至于缓存什么,答案落在上面的某个地方。您不希望缓存数据库

我不熟悉memcached和缓存。我有一个java web应用程序运行在Ubuntu+Tomcat+MySQL的VPS服务器上,内存为1GB

为缓存添加一个大约256MB的memcached层有意义吗?这会导致服务器负载过大吗?哪个更适合缓存呈现的html页面或数据库对象


请告知。

memcached不会在您的服务器上添加任何明显的负载,但它将是您的应用程序无法使用的内存。如果您只计划在一段时间内使用一个应用服务器,那么最好使用JVM内缓存

至于缓存什么,答案落在上面的某个地方。您不希望缓存数据库中的内容,当然也不希望缓存最终输出。应用程序中的数据模型表示形式与数据库中的数据模型表示形式不同(例如,

User
对象可能由几个不同表中的多个查询组成)。缓存这种东西,因为它是最可重用的


中有很多信息可以帮助您理解并开始使用缓存,特别是memcached。

这样做可能会有意义,为什么不尝试使用较小的大小(如64MB),看看效果如何。当您为memcache使用更多资源时,其他所有资源都会减少。您应该尝试一下,看看什么能给您带来最好的性能。

如果要缓存页面,请不要使用memcached,而是使用。然而,有一个很好的机会,这不是一个伟大的内存使用。缓存页面可以为计算和数据库工作交换内存,但每页确实要花费大量内存,因此最好用于生成单个页面所需的计算和数据库工作非常多(或者页面非常小!)的情况。此外,如果你想在页面上使用每个用户定制(例如显示购物车中的项目数量),那么考虑页面缓存将是不可能的,甚至是可能的。至少在没有陷入一些真正毛茸茸的恶作剧的情况下是这样(边缘方面包括,有人吗?)

如果你不打算缓存页面,并且你的应用程序在一台机器上,那么使用memcached或类似的工具是没有意义的。这样的缓存服务器的目的是让一台机器上的内存作为另一台机器的缓存——就像文件服务器如何共享磁盘一样,它们本质上是内存服务器。在一台机器上,您还可以将所有内存分配给Java并缓存堆上的对象

您正在使用对象关系映射器吗?如果是,请查看它是否支持二级缓存。三大实现(Hibernate、OpenJPA和EclipseLink)都支持内存缓存。如果你自己进行缓存,他们可能会比你做得更好


但是,如果您不使用映射器,那么您别无选择,只能自己进行缓存。LinkedHashMap中有用于构建LRU缓存的扩展点,当然还有人们最喜欢的SoftReference,它与HashMap相结合。另外,可能有一些缓存实现可以下载和使用-如果Apache Commons库中没有任何内容,我会感到震惊。

你的后一个问题太宽泛了,完全取决于许多因素。我尝试了页面缓存,但由于页面上特定于用户的元素而无法实现。我使用Hibernate。当前正在使用EHCache作为二级缓存。所以,我想我现在最好使用EHCache。