我正在构建一个网络/移动应用程序,该应用程序将用作与爱好相关的数据门户,从第三方网络服务导入数据,然后允许用户根据偏好自定义和过滤其视图。用户无法编辑从外部检索到的数据——您可以将其视为几乎是经常变化的股票报价,但它不是股票报价。它按类别组织(每个类别都是美国的一个州),每个类别平均有 500 行数据,每个类别中只有几个属性。但是,每个用户的视图可以并且很可能会包含(从)不同的类别(获取数据)。
有一个后端作业每 10 分钟更新一次 MySQL 中的数据。但是,当用户想要检索它时,考虑到磁盘 I/O 的性能以及这些数据的性质、动态和大小,将其存储在某种形式的内存容器中显然是有意义的。应用程序使用而不是从 DB evert 请求中读取它,即缓存它。因此,当此作业运行时,将数据存储在数据库中后,如果前端服务器正在运行,它将更新内存存储。
我熟悉 Memcached 和 Redis 等产品,但由于数据结构相当简单,我想知道使用更轻量级替代方案的利弊,例如 Glassfish 中的 Singleton 对象,它为 web 和移动应用。
谢谢