java 缓存 - 使用 Map 和使用 Graph 之间的选择

标签 java spring caching google-guava-cache

在我的 java Spring 应用程序中,我需要构建一些配置元数据的进程内/内存中缓存,其结构如下:

Graph<String customerName, Map<String, JSONObject> customerMetadata>:

  "My Customer" "CustomerInfo":
                    {IngestionConfig:  {"data": "schema":{"fields"[]}}}
                "Asset"
                    {IngestionConfig:  {"data": "schema":{"fields"[]}}}
                "Invoice"
                    {IngestionConfig:  {"data": "schema":{"fields"[]}}}

问题:

哪种技术更适合此目的:Map、Google Guava 的 ValueGraph、EhCache 还是其他技术?

最佳答案

这要看情况。您是否希望缓存在一定时间后自行过期?您是否需要分发您的 map ?它是只读的还是您计划在运行时更新它?如果它不是只读的,您的环境是单线程还是多线程? 如果您不需要任何这些花里胡哨的东西,并且它是只读的,我宁愿使用 Map (或任何包含 Java 的东西)。 (这只是一个意见——我是一个极简主义的人。)

关于java 缓存 - 使用 Map 和使用 Graph 之间的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305595/

相关文章:

amazon-web-services - AWS Lambda 是否缓存 API 响应?

java - 如何在java中创建一个每次迭代返回不同变量的循环?

java - Jenkins 和 Maven 配置文件

Java 表格单元格渲染器仅在第一次单击后才激活

java - Spring Boot测试配置

java - Spring-MVC/Hibernate/MySql 的良好开发设置

java - 在 Android 中将调用转发到语音信箱?

Spring AOP根据参数名获取方法参数值

performance - Google 的新 mod_pagespeed 是否只是为不知道如何正确做事的网站管理员提供的另一种工具?

java - Java 8 中的方法引用缓存是个好主意吗?