Azure Redis缓存作为数据存储区?

时间:2014-08-08 04:27:30

标签: azure azure-sql-database azure-web-roles azure-redis-cache

我正在开发PaaS。该应用程序将托管在Azure网站中。目前我在内存缓存中使用EF / SQL作为数据存储区。如果应用程序增长,我计划使用Azure Reddis缓存,我需要跨多个实例共享此缓存。

当我更加关注reddis时,我开始喜欢我所看到的。对于我的许多域对象来说,它确实非常快速和完美。我的日志模型例如。所以现在我想知道,我可以使用Azure Reddis Cache作为主数据存储吗?

名称中的 缓存 一词让我感到担忧。不使用时是否清除了数据?

虽然我在这,我想我应该更详细地描述我的应用程序。该应用程序是一个MVC5应用程序。它包括一个HtmlController管理部分,但工作的内容是在ApiController中。 ApiController主要服务于OData Get,但我也会分享我的PUT请求。我按要求收费,因此必须记录所有用户操作(reddis的完美工作)。

修改

我的模型有三个对象,没有任何关系。用户不经常用于身份验证。通过“应用程序密钥”分区的90%的记录和“忘记”记录和“存储”。和'组密钥'。存储'设置'将被要求并且Odata动词将在内存中手动应用。

修改

经过一番阅读,我想知道Azure表格是一个更好的解决方案。这Blog具有影响力。假设替换缓存和sql。

编辑:通过电子邮件发送

所以我通过电子邮件发送了Azure ....

  

你好尼古拉斯,

     

您的问题似乎需要技术支持而不是结算   和选择的订阅支持。

     

目前,您还没有Windows Azure技术支持   订阅。

     

请注意,Windows Azure有许多选项供您选择   获得技术支持。你尝试过搜索或发帖吗?   您在社区论坛中的问题? Windows Azure生态系统   为发生的大量技术问题提供答案   经常。此外,如果您转到WindowsAzure.com/support您   会看到我们有几个付费支持选项,您可以选择   最符合您技术支持需求的。

真的吗?那是您如何进行售前咨询。

2 个答案:

答案 0 :(得分:4)

您可以将Redis用作主数据存储,但在Redis接收数据的时间与尝试将其写入AOF文件之间的数据丢失风险总是很小。如果在该窗口期间,实例死亡,您将丢失该部分数据。

话虽如此,没有明确的迹象表明Azure Redis Cache是​​否进行后台保存(简单来说,写入磁盘)。如果他们不这样做,那么所有内容都会留在服务器的内存中,这意味着如果丢失了所有服务器,就会丢失所有数据。失去所有服务器的情况非常不同,但仍有可能。

在有进一步的信息之前,我会假设数据可能会从缓存中丢失(易失性)并且有另一种类型的数据存储(例如现在的SQL)是安全的。

UPDATE :Redis缓存没有启用持久性,因此原始假设是正确的。

答案 1 :(得分:1)

Here is这篇关于使用MongoDB作为主要来源而不是关系数据库的缺点的有趣帖子。

我认为大部分结论都发生在你的场景中。

最重要的问题 - 如果您将来需要或将来需要查找数据之间的关联和关系,计算指标并从数据中提取业务价值,那么使用Redis等解决方案可能会导致问题,因为它们旨在存储和检索SINGLE值,与其他数据无关。