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

Azure 高速缓存层在高性能读取模型(数据库)之上的优势,azure,caching,redis,azure-table-storage,Azure,Caching,Redis,Azure Table Storage,我目前正在观察和研究几种现有的软件体系结构技术,在开发超规模应用程序时可以考虑这些技术。正如他们所说,网络规模的架构 我现在了解到,可以拆分读写模型/数据库。因此,现在我在我的应用程序中构建了一个数据层,它可以写入RDBMS(SQL SERVER),但可以从Azure表存储中读取数据(如果正确分区,它的速度会非常快) 问题是,既然读模型已经非常快了,为什么还要或者应该在它上面添加一层缓存(例如分布式Redis缓存)?获得什么性能/优势?如果我理解正确的话,它只会增加另一层复杂性,因为您必须处理陈

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

我现在了解到,可以拆分读写模型/数据库。因此,现在我在我的应用程序中构建了一个数据层,它可以写入RDBMS(SQL SERVER),但可以从Azure表存储中读取数据(如果正确分区,它的速度会非常快)


问题是,既然读模型已经非常快了,为什么还要或者应该在它上面添加一层缓存(例如分布式Redis缓存)?获得什么性能/优势?如果我理解正确的话,它只会增加另一层复杂性,因为您必须处理陈旧的数据。

缓存层总是比RDBMS更快,能够处理更高的吞吐量

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


是的,取舍是它增加了一层额外的复杂性。如果您的数据库足够强大和快速,可以处理当前的load+,那么不要担心缓存。另一方面,如果您正试图扩展或为用户提供更快的体验,则缓存远没有对数据库进行分片或群集化复杂,而且对于许多应用程序来说,它将走得更远,需要的实现和维护工作更少。

我知道缓存比RDBMS快得多,但我已经有了一个NoSQL数据存储,它充当了一个快速读取模型(我不查询我的RDBMS,它只用于编写和确保数据一致性)。我不知道缓存在这样的体系结构中是否仍然相关。你明白我什么意思吗?