为了减少用户对数据库的频繁连接,进而影响程序的性能,想建立一个数据缓存,把所有需要的数据都放到这个缓存中,需要的时候直接从缓存中提取,但是用户如果修改数据(且非常的频繁的话),那么缓存数据的更新又成了一个新问题,应该怎么解决呢???用触发器后台自动更新可行么?

解决方案 »

  1.   

    SQLSERVER的数据库支持。如果是别的,就别考虑了。
    而且如果的确数据量很大而且更新很频繁的话,那么缓存本来就不是一个好的方案。即便是可以自动刷新缓存,你觉得这样效率高吗?和你不用缓存有多大区别?缓存存在的意义就是非频繁更改的数据源。
      

  2.   

    我现在用的是cache把不经常修改的数据都放在一起,但是没法修改阿!更新很麻烦!
      

  3.   

    你会用cache,没听过cache依赖吗.
      

  4.   

    很频繁的话,用固定时间缓存吧!比如你设置5分钟更新一次缓存就好了
    Cache.Insert(keyName,value, null, System.DateTime.Now.AddMinutes(5), TimeSpan.Zero);
      

  5.   

    楼主说实话这个就是你们需求没有搞明白了。如是使用数据库的话请用 SqlDependency,具体的可以去查看网上关于 SqlDependency资料,一看就明白了
      

  6.   

    呵呵,缓存是个大问题哟。很策略的。支持:
    1.如果的确数据量很大而且更新很频繁的话,那么缓存本来就不是一个好的方案;
    2.cache依赖,但提醒一下,SqlCacheDependency要慎用,无论是基于表还是基于行的,颗粒度太大,最高效的是自己写,查msdn - >CacheDepency类
    3.局部缓存(如数据源缓存、用户控件(asmx)的outputCache)