【发布时间】:2016-06-30 08:07:42
【问题描述】:
我想在 Java 中实现某种轻量级缓存,它可以很容易地集成到 Java 中,并且应该很容易与 Java 应用程序一起部署。
缓存层将在应用程序和数据库层之间:没有数据库缓存,没有 Spring,没有 Hibernate,没有 EHcache,没有 http 缓存。
我们可以使用文件系统或者nano数据库,这样可以恢复缓存,这样在进程重启后可以恢复缓存。
我试过 LRU 缓存:
http://stackoverflow.com/questions/224868/easy-simple-to-use-lru-cache-in-java
http://www.programcreek.com/2013/03/leetcode-lru-cache-java/
但我不确定在溢出后如何将数据库保存到数据库中(哪个数据库更适合更快地插入和查找数据)。还是我应该使用文件系统?
任何人有更好的输入来在 Java 中实现缓存机制?
【问题讨论】:
-
要确定在您的情况下哪个更快,您需要对其进行测量。数据库和文件系统的速度取决于很多因素。您使用的硬盘驱动器或 SSD 类型,您在该驱动器上使用的文件系统......因此,如果您尝试过不止一种方法,只需使用测试数据来衡量速度。
-
这不是我可以使用 nano 数据库的主要问题......但这里的问题是如何在 java 中实现自定义缓存?哪个 nano 数据库最适合使用?
-
即使使用缓存也是微不足道的(如果缓存实现了
Map接口),实现持久缓存也不是一件容易的事。所以你真的想重新发明轮子吗?例如,为什么不能使用 EHcache? -
@PeterMmm 我可以使用现有的 Java API,如 LRU 缓存或 Guava 缓存......但我不知道如何将数据保存到数据库中(作为 jdbc?它会更快?)作为关键值对,然后更新值并再次将其保存到数据库中?有什么想法/算法吗?