我需要在 ASP.NET Web API 中缓存有关用户角色的信息。我决定使用System.Web.Helpers.WebCache
类。角色是纯字符串,大约 40 个字符长。每个用户可能有 1-10 个角色。
我正在考虑两种方法来做到这一点:
- 使用
WebCache.Set(UserID, List<String>).
使用用户 ID 作为键并将角色列表(字符串)存储为值。它很容易检索。 - 使用字典,我将使用 userId 作为键,使用角色列表作为值,然后缓存字典。这样我只用一个键进行缓存。当我检索此信息时,我首先检索字典,然后使用用户 ID 获取角色信息。
问题:
- 哪种方法更好?我喜欢方法一,因为它易于使用。它有什么缺点吗?
- 我计算用于将这些键保存到缓存中的内存使用的方法是将相同数量的数据(存储 10 个字符串类型的角色)添加到记事本中,然后计算记事本的大小(使用 UTF-8 编码)。大小约为
500 bytes
,磁盘大小为4 KB
. 然后如果我有 200 个用户,我将乘以 200 * 500 字节来计算内存使用量。这是正确的(如果近似关闭,我可以)计算方式吗?