Azure:用于 Web 缓存的 Redis 与表存储

问题描述 投票:0回答:4

我们目前使用 Redis 作为 Web 应用程序的持久缓存,但由于它的内存和成本有限,我开始考虑表存储是否是一个可行的选择。

我们存储的数据是相当基本的 json 数据,具有清晰的 2 部分键,我们将其用于表存储中的分区和行键,因此我希望这意味着快速查询。

我很欣赏一个在内存中,一个在外,所以表存储会慢一点,但随着我们的扩展,我相信只有一个 CPU 提供来自 Redis 缓存的数据,而使用表存储我们不会遇到这个问题取决于我们运行的网络服务器的数量。

有谁有以这种方式使用表存储的经验或两者之间的比较。

我应该补充一点,我们以一种非常简约的方式使用 Redis 获取/设置,仅此而已,我们驱逐自己的数据,如果失败,当空间不足时,将驱逐留给 Redis。

azure caching azure-table-storage azure-redis-cache
4个回答
22
投票

这是一个相当广泛/征求意见的问题。但从客观的角度来看,这些是您在决定使用哪个时需要考虑的属性:

  • 表存储是持久的键/值存储。因此,内容不会过期。您将负责清除数据。
  • 表存储可扩展至 500TB。
  • Redis 可跨多个节点水平扩展(或者通过 Redis 服务进行扩展)。相比之下,表存储将在一个分区上提供高达 2,000 个事务/秒,在整个存储帐户中提供高达 20,000 个事务/秒,并且要进行扩展,您需要利用多个存储帐户。
  • 表存储的成本足迹将比 VM 或 Redis 服务低得多。
  • Redis 提供了 Azure 存储表之外的功能(例如发布/订阅、内容驱逐等)。
  • 表存储和 Redis 缓存都可以通过端点访问,并且 API 周围有许多特定于语言的 SDK 包装器。

6
投票

我找到了一些关于azure redis和表的资料,希望对你有帮助。有一个关于Azure Redis的视频,其中还包含一个演示,从视频的第50分钟开始比较表存储和redis。 或许可以作为参考。但具体性能取决于你的应用、数据记录等。 表存储的定价取决于表存储的容量,请参阅详情。它比redis便宜得多。


1
投票

您可能会关心许多差异,包括价格、性能和功能集。并且,数据持久性和数据一致性。

由于 Redis 是内存数据存储,因此非常昂贵。这样您就可以获得低延迟。请查看此处 Azure 的规划常见问题解答,从吞吐量角度对 Redis 性能有一个总体了解。 Azure Redis 规划常见问题解答

Redis 确实有一个可选的持久性功能,如果您希望在服务器罕见停机时保留并恢复数据,则可以打开该功能。但它没有很强的一致性保证。

Azure 表存储不是缓存解决方案。它是一种持久存储解决方案,并将数据永久保存在某种磁盘上。从历史上看(免责声明,我没有寻找最新和最好的性能数据)它具有更高的读写延迟。它也是严格的键值存储模型(具有两部分键)。值可以具有属性,但有许多严格的限制,例如可以存储的对象的大小、属性的长度等等。如果您的应用程序遇到这些限制,这些限制是不灵活且痛苦的。

Redis 具有更大的功能集。它可以执行键值对操作,但还具有许多其他数据结构,例如集合和列表,并且许多应用程序可以找到从增加的灵活性中受益的方法。

请参阅“Redis 简介”(redis 文档)

如果您主要倾向于 Azure 技术,CosmosDB 可能是另一个值得考虑的替代方案。它相当昂贵,但速度相当快且功能丰富。同时也主要是为了成为一个持久存储。


0
投票
每个人特定的数据传输场景都不同。您可以/想要负担得起的 Azure Redis 缓存级别也是如此。

您可以选择尝试这两种技术。您可以记录所使用的两种技术的数据持久性和检索时间。您很快就会知道 Azure Redis 是否物有所值。目前,我使用 Redis 和 Blob 存储并行进行发布/订阅数据传输,第一个检索数据的人获胜,并记录获胜者的姓名。随着时间的推移,性能统计数据可能会推动我的技术决策。如果 50/50 的性能获胜,我将继续使用这两种技术传输数据;我的目标是尽可能快地传输数据。

© www.soinside.com 2019 - 2024. All rights reserved.