Caching 分布式系统中的内存缓存与集中式缓存
我们目前正在寻找最合适的解决方案来访问分布式系统上的关键数据,我们正在考虑是否使用内存缓存,而不是集中式缓存 有关我们希望存储/访问的数据的一些信息:Caching 分布式系统中的内存缓存与集中式缓存,caching,architecture,distributed-computing,distributed-caching,Caching,Architecture,Distributed Computing,Distributed Caching,我们目前正在寻找最合适的解决方案来访问分布式系统上的关键数据,我们正在考虑是否使用内存缓存,而不是集中式缓存 有关我们希望存储/访问的数据的一些信息: 数据量非常小 数据非常冷;这意味着它几乎不会改变,只有当一个人改变了我们后台系统中的某些东西时才会改变 更改时必须是最新的(可以延迟100毫秒) 我们的应用程序非常关键,需要非常高的SLA(可靠性和响应时间(访问时间不超过20毫秒)) 频繁读取数据(每秒多达数千次) 我们的看法如下- 内存缓存中 优点: 比网络访问+序列化更快 在分布方面具
- 数据量非常小
- 数据非常冷;这意味着它几乎不会改变,只有当一个人改变了我们后台系统中的某些东西时才会改变
- 更改时必须是最新的(可以延迟100毫秒)
- 我们的应用程序非常关键,需要非常高的SLA(可靠性和响应时间(访问时间不超过20毫秒))
- 频繁读取数据(每秒多达数千次)
- 比网络访问+序列化更快
- 在分布方面具有更高的可靠性(如果一个实例死亡,数据仍然存在于其他实例上)
- 编码和维护要复杂得多
- 需要在发生更改时通知实例,并且需要单独更新每个实例+需要在每个服务器启动时加载数据
- 增加了数据不一致的高风险(一个实例的数据与其他实例不同或过时)
- 维护起来要简单得多
- 非常可靠,我们有很多在分布式系统中使用Redis的经验
- 只有一个地方需要更新
- 确保数据一致性
- 单点故障(这是我们非常关心的问题);即使我们使用这个解决方案,我们也会部署一个集群
- 如果缓存因某种原因被刷新,会发生什么情况
希望这有帮助 Redis是集中式缓存的最佳选择。它速度快,性能好。我们正在使用它来存储TB的数据。似乎您应该使用集中式缓存,位于DB和应用层之间,所有DB读/写操作都通过一个写通过缓存失效方案通过缓存。在线阅读更多文章并考虑优缺点后,我们认为集中式缓存是更适合我们的解决方案。