我们使用 Azure 云服务工作角色来处理某些事件,大多数时候工作人员执行这些操作:
- 从服务总线获取消息(这是同时完成的)
- 从文档数据库检索某些数据(2 次或更多
i/o
调用) - 执行某些计算
- 将数据更新到文档数据库
现在我们希望将部分数据存储到本地内存(主内存)或辅助内存中并利用它,而不是再次从数据库读取相同的数据;我们希望继续保留数据库的最新更新,这样就可以了;
这有设计模式吗?或者抽象逻辑并提供安全缓存的库/包?如果有东西提供两层缓存 - 首先是主内存,然后是辅助内存,然后是数据库,那就太棒了
最佳答案
我建议您超越 Service Worker 并转向 Service Fabric 有状态服务。我们将它用于类似的场景,在应用程序启动时从 dB 读取数据,然后从 Service Fabric 缓存中提供所有内容。通过这种方式,我们的服务延迟达到了毫秒级。我们避免使用 Redis 缓存有两个原因,一是延迟,二是成本。
如果需要,我可以分享更多信息。
关于azure - 在 Azure 云服务辅助角色中使用本地内存进行缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48962319/