Asi*_*dri 10 memory asp.net caching distributed-caching
我正在使用ASP.NET/C#中的Web应用程序,它需要可扩展以处理高用户负载(可能在Web场中运行).由于它将迎合大量用户,大约100万以上,但在线用户数量将在30K-50K左右.我计划使用缓存(基于提供程序),并且想知道:
为所有用户缓存性能是一个好主意吗?我打算缓存所有其他通用数据,比如设置等,但是如何有效地将所有用户缓存在内存中?如果用户更改了他/她的个人资料,我将仅重新加载缓存中的特定用户(拥有所有用户的集合).有关此方法的任何建议吗?
使用上面的用户缓存时,我是否需要担心锁定?编辑配置文件只有一个是用户自己,这将是一个原子操作,尽管在不同的线程中将有多个读取操作.因此,在从缓存中获取用户或更新特定用户时,我应该使用锁吗?
谢谢
阿西夫
将任何内容放在仅对单个用户有用的全局缓存中通常是一个坏主意和性能杀手.优化您的数据库查询,您将获得更好的形状.
作为一般经验法则,您应该只在缓存中保留从数据库获取的昂贵内容,并且多个用户希望一次查看该信息.比如前100名产品或其他东西的清单.从数据库中获取相对便宜且只对单个人有用的少量数据应该保持原样.
缓存极大地增加了复杂性,在Web场中更是如此.除非你绝对必须,否则不要引入不必要的复杂性.在尝试解决之前,请等到您遇到实际的性能问题.
归档时间: |
|
查看次数: |
310 次 |
最近记录: |