tam*_*agy 2 asp.net asp.net-mvc memcached caching
我听说这HttpRuntime.Cache不适合与网络农场一起使用.这是为什么?这个问题的一些很好的示例解决方法是什么?我听说过Memcached和类似的产品,但我找不到任何好的最近样本显示基本用法.
Eri*_*lje 11
服务器场中HttpRuntime.Cache的一个问题是缓存中的大部分数据将跨服务器重复.
例如,假设您有一个电子商务站点,并且您将产品目录存储在缓存中(因为它很少更改)并且需要20M的内存.如果您有5个Web服务器,则每个Web服务器将在其缓存中拥有自己的产品目录副本,总共使用100M内存(20M*5服务器).使用像memcached这样的共享缓存通过仅存储一个缓存项目的副本而不是5个副本(每个服务器一个副本)来消除浪费.
另一个问题是缓存同步.再说一次,假设您在从数据库中检索产品目录后将其缓存1小时.每个服务器可以在其缓存中具有目录的副本,该副本在不同时间到期.当缓存在一台服务器上到期时,它可以获得其他服务器尚未拥有的更新数据.
这可能会导致奇怪的用户体验,他们可能会在一个类别中看到50个产品,然后刷新页面,发送到不同的服务器,然后看到51,再次刷新再看50,等等.使用共享缓存,你不要不用担心.
| 归档时间: |
|
| 查看次数: |
2964 次 |
| 最近记录: |