大家好,我已经试了一个星期左右了,但没有找到办法。我与tomcats合作,我的客户定期向我发送2到3GB的日志文件,说明存在找不到文件等问题。有时他们没有正确的信息来浏览日志文件。因此,我决定构建一个可以解析所有日志文件并对日志进行相应分类的工具。现在我无法在内存中存储4GB的数据,也无法将其放回文件中,因为读取4GB将花费大量时间。尽管我使用的是文件通道和线程。数据库肯定不是一个选择,因为它会再次降低系统的速度。所以我想知道是否有其他方法来存储解析的内容,这样每当我想检查404错误时,我都必须在列表中获得所有404错误。
我不想使用数据库。所以数据库肯定不是这个问题的答案。
是否"要使用数据库"并不重要。你所做的基本上是建立一个数据图。这就是数据库的设计目的。现在你可以选择使用别人写的、经过广泛测试的,也可以选择自己的。不管你想不想,你都在使用数据库。
如果你想要一个轻量级、可嵌入、性能良好的文档/图形"无SQL"数据库,并且能很好地与Maven配合使用,OrientDB是你的朋友,使用它非常直观。此外,您可以根据需要选择使用内存数据库、文件备份数据库还是更传统的客户端/服务器解决方案。最棒的是,它有一个对象抽象层,所以您甚至不必使用ORM框架。
你真的应该试试。它会让你所有的痛苦都消失的。
林基:http://www.orientdb.org/
您可以使用Apache Lucene。使用nio文件处理程序将文件划分为chuck,并使用ApacheLucene进行索引和文本搜索。这可能无法解决您的全部问题,但如果您不希望使用数据库,这是一个更好的解决方案。