建议使用私有静态Dictionary <string,string =“”>进行缓存吗?

时间:2017-03-31 07:41:11

标签: c# asp.net-mvc dictionary caching

我正在使用私有和静态字典来缓存菜单名称。

private static Dictionary<string, string> menuItemCache = new Dictionary<string, string>();

并且我的[POST]操作方法会为添加的任何新菜单项更新缓存。字典一直保存菜单名称,并被其他[GET]操作方法使用。

我的问题是如果建议使用静态字典而不是任何其他缓存技术。

1 个答案:

答案 0 :(得分:4)

你应该非常小心静态变量。静态变量在所有会话中共享。如果您打算为每个用户保留一个缓存,则应该使用Session对象。

就其本身而言,保持缓存存储在字典中没有任何错误。字典具有快速查找功能,因此在列表中使用字典时,您可能会从性能方面受益。