java - 如何比较各种缓存框架的速度?

标签 java spring hibernate caching

我希望比较以下缓存平台上突发数据的读取、写入和读/写速度:

  1. EhCache
  2. Redis
  3. MemCache
  4. gem 火
  5. JCS(Java 缓存系统)

我该怎么做?我如何利用 Spring 和/或 Hibernate 等平台来执行此操作?

最佳答案

简短回答:只需实现一个示例应用程序并比较速度。

长答案:您提到的产品非常不同。您可以在不同的使用场景中使用它们。例如。我大致将其分类如下:

  • Java 堆内部:JCS、EhCache
  • Java 堆外:MemCached
  • 分布式:Redis
  • 持久化:Redis

我忽略了 GemFire,因为我对它一无所知。

此外,您也无法进行直接比较,因为 API 非常不同。对于 redis 和 memcache,您使用休息接口(interface)。理论上,应该可以为每个产品实现类似 JSR107 的 API,这样您就可以对产品运行单个测试。但同样,这是毫无意义的,因为这些产品有不同的用途。对于真正的解决方案,将redis和EhCache结合起来可能会更好。一种用于扩展和持久性的解决方案,一种用于处理 Java 堆中 Java 对象的缓存部分的解决方案。

我对 Java 缓存做了一些基准测试。然而它只覆盖了内部堆部分,并且仅运行单线程,因此需要扩展。有关条目,请查看 cache2k benchmarks页。基准测试代码位于 github 上并运行 OOTB。如果您想为此做出贡献,我们非常欢迎!

关于java - 如何比较各种缓存框架的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24488636/

相关文章:

java - spring boot连接池理解

spring - 没有名为 'transactionManager' 的可用 bean

java - 如何在TeeChart中设置标题的阴影颜色?

java - VPN 开启时无法访问 REST 端点

java - 主机查找的默认超时是多少?

java - 坚持使用带有返回id的存储过程

hibernate - CF9 实体删除 : How to delete entities

java - 在 Jung 中修改图形后禁用重新绘制

java - RESTEasy + Spring 3 + Maven

java - 为什么 HibernateTemplate.merge() 会毫无异常地完成但不保留数据?