有没有办法,使用Azure缓存,来确定缓存中是否存在具有特定键的对象,而不实际返回对象本身?
我现在正在做类似的事情
public bool IsKeyInCache(string cacheKey)
{
DataCacheItem item = null;
CacheRetryPolicy.ExecuteAction(() =>
{
item = cache.GetCacheItem(cacheKey);
});
return item != null;
}
Run Code Online (Sandbox Code Playgroud)
但是,因为缓存中的对象非常庞大且反序列化很昂贵,所以性能非常糟糕.
我已经挖掘了MSDN文档并没有看到任何替代方案,但也许我错过了一些东西.
到目前为止,我最好的想法是添加一个小的"标记"对象与我的大对象同时缓存,并检查反序列化是否便宜的"标记"对象的存在.但这不是一个强大的解决方案,因为我的大对象完全有可能在"标记"对象保留时从缓存中清除.
我相信您正在寻找的 API 是DataCache.Get(key):
但我仍然认为最好的选择是不要“微观管理”缓存,只需查询,然后让 Azure 决定。
恕我直言...
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |