nVe*_*lia 3 azure azure-web-roles azure-redis-cache azure-sql-database
我正在开发一个PaaS。该应用程序将托管在 Azure 网站中。目前我使用 EF / SQL 作为具有内存缓存的数据存储。如果应用程序增长并且我需要在多个实例之间共享此缓存,我计划使用 Azure Reddis 缓存。
随着我对 Reddis 的了解越来越多,我开始喜欢我所看到的。对于我的许多领域对象来说,它确实非常快速且完美。以我的日志模型为例。所以现在我想知道,我可以使用 Azure Reddis 缓存作为主要数据存储吗?
名称中的“缓存”一词让我感到担忧。不使用时数据会被清除吗?
该应用程序是一个 MVC5 应用程序。它包括一个 HtmlController 管理部分,但工作的重点是在 ApiController 中。ApiController 将主要服务于 OData Get,但我也将提供 PUT 请求。我按请求计费,因此必须记录所有用户操作(对于 reddis 来说这是一个完美的工作)。
我的模型有三个对象并且没有关系。不经常用于身份验证的用户。90% 的日志记录采用“即发即忘”方式,而存储则按“应用程序密钥”和“组密钥”进行分区。将请求存储“集”,并且将在内存中手动应用 Odata 动词。
Azure Tables 会是更好的解决方案吗?
您可以使用 Redis 作为主数据存储,但在 Redis 接收数据和尝试将其写入 AOF 文件之间,始终存在数据丢失的小风险。如果在该窗口期间实例死亡,您将丢失该部分数据。
话虽如此,没有明确指示 Azure Redis 缓存是否进行后台保存(简单来说,写入磁盘)。如果不这样做,那么所有内容都会保留在服务器的内存中,这意味着如果您丢失所有服务器,您就会丢失所有数据。失去所有服务器是一种非常不同的情况,但仍然有可能。
在获得进一步信息之前,我会假设数据可能会从缓存中丢失(易失性),并使用另一种类型的数据存储(例如,像现在这样的 SQL)来确保安全。
更新:Redis 缓存没有启用持久性,因此最初的假设是正确的。
| 归档时间: |
|
| 查看次数: |
2630 次 |
| 最近记录: |