c#企业库缓存关于CacheManager的性能



在性能视图中使用缓存库的最佳方式是什么。我的数据库表中有很多数据要缓存。

假设我有3张表命名。

  1. 工作分配负责人
  2. 工作分配行
  3. 项目

今天我把这些表作为闲置的存储:

private CacheManager _manager = _manager = CacheFactory.GetCacheManager();

我有一个CacheManger,我像这样存储数据。

_manager.add("Heads",ListofAssignmentHeads);
_manager.add("Rows",ListofAssigmmentRows);
_manager.add("Items",ListOfItems);

当检索像Heads这样的数据时,我做休闲:

_manager.GetData("Heads");

然后我得到了一个heads列表,并使用linq查询我想要什么。但这是最好的方法吗?还是最好为每个表设置3个CacheManager,然后插入主键,然后插入对象。

_headManager.add("1",HeadObject);

我真的需要你对这件事的建议。谢谢你的帮助。

就我个人而言,在所有条件几乎相同的情况下,我会以运行时需要的格式缓存数据。这样,您就可以直接在所需的表示中获得所需的信息。在您的示例中,这将是多个以主键为缓存键的CacheManager。

看起来您已经有了返回列表的方法,并且正在缓存列表。我宁愿在加载数据时迭代列表一次,然后按键执行查找,也不愿在每次调用时迭代列表。如果你的列表很大,如果你必须为每个请求搜索列表,你可能会看到性能下降,因为在列表中找到的元素是O(N),而在没有哈希冲突的缓存中找到的是O(1)。

当然,如果您想支持动态列表,那么您可能更喜欢根据需要将列表添加到单个CacheManager中,因为创建动态CacheManager需要一些工作。

最新更新