0

我正在编写一个应用程序,我需要在数据库中存储大量数据并缓存它们。当客户端请求到来时,服务器需要从缓存中获取数据并返回。

以下是我的做法:(离线过程) 1. 我们有一个spring批处理应用程序,它获取json文件(大约6MB大小)。2.读取每个对象并将其存储在数据库中。3. DB 中存储了大约 17K 条记录。

(在线流程) 4. 当请求到达服务器时(web 应用程序 - Spring web MVC),应用程序从数据库中获取数据并返回响应。

我打算在这里避免数据库存储。除了使用数据库,我可以在文件服务器中添加文件并在服务器启动时缓存文件中存在的数据吗?

让我知道是否有任何现有的方法。

4

1 回答 1

0

缓存不会替代持久性。您可以将数据存储在文件系统而不是数据库中,但首先拥有数据库的全部意义在于,数据库中的数据存储和检索比普通文件系统中的数据存储和检索要快得多,因为数据和索引的结构更好(以及易于查询以获取数据的巨大优势)。您始终可以将数据以大文件格式转储到数据库中(不推荐)

对于缓存,您可以使用 memcached 或 redis。请注意,缓存并非 100% 可靠。您可以配置缓存以指定清除缓存的时间。每当您在数据库中创建/更新某些数据时,您还需要不断更新缓存数据。如果您的缓存已满,通常最少使用的资源将首先从缓存中清除以容纳新数据。

对您来说理想的解决方案是使用具有缓存层(如 memcache)的可扩展(读取非关系)数据库。附带说明一下,将 memcache 与 spring 一起使用非常容易(我还没有在应用程序中使用过 redis)。既然你提到了 json 数据格式,请看一下mongodb的持久性。

于 2013-07-22T02:12:26.310 回答