[英]Table Storage Service (Azure's implementation of nosql) vs Windows Azure Caching (unstructured in memory cached)
我们希望在Azure中实现缓存有两个主要原因:
以下是我们计划缓存的数据的特征:
出于这个特定目的, 表存储看起来比Blob存储更好(我们只为图像,CSS和JavaScript实现Blob存储), Windows Azure缓存看起来比Windows Azure共享缓存更好 (可能几乎总是更好 ,共享缓存主要是遗留此时的功能 )。
两者的编程API直接出现。 与我们为云站点支付的费用相比,每个站点的成本似乎可以忽略不计。
到目前为止,我们倾向于使用表存储,因为我们认为它是Azure缓存的优缺点。 作为旧的.Net人员,我们比NoSql风格的解决方案更熟悉内存缓存:
Windows Azure缓存的问题:
Windows Azure缓存的优点
您熟悉内存中缓存是在Windows Azure上实现缓存时需要了解的模型。 'NoSql风格'不是缓存,而是存储。 因此,表存储取而代之的是SQL取代缓存。 表存储用于持久,可靠的存储 - 具有内存缓存不存在的持久性的所有延迟和其他缺点。
写入缓存始终是次要的。 当您的用户对缓存数据进行更改时,您将始终将数据写入磁盘(例如SQL),然后将相同的数据写入缓存,因为您可能还有,因为您手头有数据(尽管对书面数据的次要影响可能意味着您应该使缓存的项目无效或重新读取)。
当机器回收时,擦除数据不应该是一个问题,因为数据存储在别处。 从缓存中读取的每一个都应该跟一个'if if found not then read from database'这种语句。 当角色开始预先填充您知道您将需要的项目时,您可以预热缓存。
Azure上的缓存分布在节点上,更新现有项目将始终在其所驻留的节点上更新。 快速更新可能不是您想象的问题。
对于内存中缓存,使用Windows Azure缓存(您认为共享缓存是遗留的),并根据您的需要,查看其他缓存技术,如memcached。 缓存和表存储无法比较。 表存储是为了长期持久化。 不要不必要地破解表存储来进行缓存 - 使表存储临时创建一大堆你需要担心自己的事情,比如到期和失效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.