高性能读取模型(数据库)之上的缓存层的优势

时间:2015-10-22 19:34:35

标签: azure caching redis azure-table-storage

我目前正在观看和研究现有的几种软件架构技术,并且在开发超大规模应用程序时可以考虑这些技术。正如他们所说,网络规模的架构。

我现在知道你可以分割你的读写模型/数据库了。所以现在我在我的应用程序中构建一个数据层,该数据层写入RDBMS(SQL SERVER),但从Azure表存储中读取(在正确分区时速度非常快)。

问题是,为什么我应该或者应该在读取模型之上添加一层缓存(例如分布式Redis缓存),因为它已经超快了?获得什么样的表现/优势?如果我理解正确,它只会增加另一层复杂性,因为你必须处理陈旧的数据。

1 个答案:

答案 0 :(得分:2)

缓存层总是会更快,并且能够处理比RDBMS更高的吞吐量,而其他所有内容都相同。

基本上,您可以对RDBMS执行更复杂但更慢的查询,然后将它们存储在缓存层中,这基本上只是O(1)访问的键值存储。相比之下,基本上没有针对您的RDBMS的查询会那么快。如果您有很多人反复点击相同的查询,这是扩展和为用户提供更快体验的良好途径。

是的,权衡是它增加了额外的复杂性。如果您的数据库强大且足够快以处理当前负载+,请不要担心缓存。另一方面,如果您正在尝试扩展或为用户提供更快的体验,那么缓存远不如分片或群集数据库复杂,并且对于许多应用程序来说将更进一步,并且需要更少的实施和维护工作。