在缓存中存储用户数据与每次查询数据

时间:2011-02-01 09:00:35

标签: c# asp.net

如果我在登录时将所有用户信息存储在缓存中,并且只有一个“我的帐户”页面显示缓存中的用户信息,这是一个好习惯吗?我想知道一个人是否更改了他的电子邮件或进行了任何类型的数据库修改,那么缓存的变量将是错误的。如果每次数据库出现问题时都必须更新缓存变量,那么与仅在需要时查询数据相比,这是一个很好的做法吗?

-Thanks

3 个答案:

答案 0 :(得分:0)

用户信息数据的更改频率是多少?如果不是太频繁,您可以使用缓存的滑动过期。

http://msdn.microsoft.com/en-us/library/aa478965.aspx

另请注意,由于每个用户的用户数据不同,因此您需要存储与用户登录一样多的用户信息数据。

答案 1 :(得分:0)

如果数据未缓存,您是否会遇到性能问题,并且每次都运行查询? (您可能需要对此进行测量才能找到答案)。如果没有,额外的复杂性和缓存失效问题(如您所述)意味着您应该只运行查询。

答案 2 :(得分:0)

更相关的问题是您多久使用一次用户数据。你需要访问它吗?

  • 每个请求
  • 仅限会员页面
  • 只是在某个地方显示一个名字

如果它只是会员的页面,就像我理解的那样,那么最好打到DB(如果没有性能问题)。

如果您在其他地方或每个页面上使用数据,那么您应该进行某种滑动到期缓存。并从更新操作中使其无效。如果您对每次插入缓存都坚持使用标准格式,那么很容易使其无效。

请记住,要编写代码,好像缓存将为空,请点击数据库,插入缓存,然后返回用户信息。

相关问题