Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 存储和获取对象列表的有效方法_Java_Database_Spring Boot_Data Structures_Postgresql 9.4 - Fatal编程技术网

Java 存储和获取对象列表的有效方法

Java 存储和获取对象列表的有效方法,java,database,spring-boot,data-structures,postgresql-9.4,Java,Database,Spring Boot,Data Structures,Postgresql 9.4,我在SpringBoot中有一个处理自定义请求的应用程序。 存在一个每30秒运行一次的计划作业,它从数据库中获取对象列表并执行某些操作。 当我想到我需要每30秒查询一次数据库时,我会感到非常震惊,相反,我可以将这些对象保存在一个数据结构中。 有RESTAPI可以添加、删除或编辑这些对象的属性,因此,我需要处理这些对象的更新 在数据结构中也是如此。我应该选择哪种方法 对象的大小可以在100到10000之间。我使用Postgres作为我的数据库。我不认为您需要将数据保存到自定义数据结构,相反,您可以

我在SpringBoot中有一个处理自定义请求的应用程序。 存在一个每30秒运行一次的计划作业,它从数据库中获取对象列表并执行某些操作。 当我想到我需要每30秒查询一次数据库时,我会感到非常震惊,相反,我可以将这些对象保存在一个数据结构中。 有RESTAPI可以添加、删除或编辑这些对象的属性,因此,我需要处理这些对象的更新 在数据结构中也是如此。我应该选择哪种方法


对象的大小可以在100到10000之间。我使用Postgres作为我的数据库。

我不认为您需要将数据保存到自定义数据结构,相反,您可以查看Hibernate的实体和查询的二级缓存

通过正确的设置,Hibernate将缓存您正在使用的数据和查询


这是一篇关于Baeldung的关于二级缓存的好文章,可以让您开始使用。

我认为您应该编写一个数据库侦听器,侦听DB records change事件,然后在您选择的数据结构中获取记录,然后缓存记录,以便在未触发DB change事件的情况下使用

  • 这是一篇关于如何在java中实现db侦听器的好文章

试着看看这个,并找到一些好的内存数据库:如果您将ORM集成到您的项目中,这将是一项简单的任务。然后你可以使用二级缓存。你的查询有多大?当你认为数据库每秒执行数以千计的事务时,担心每30秒发生一次数据库的重写。这是一个简单的SELECT语句,比如“从表中选择不同的(名称,ID)”。可能我只是有点偏执Hibernate没有在我的应用程序中使用,而是使用JDBCTemplate。对不起,我的坏消息是我假设在Spring Boot中使用Hibernate,但是我认为在EHCache依赖项中有JDBC缓存的实现——你可以看到,它应该以类似的方式工作。