目前,我正在 ASP.net 上使用 C# 3.5 开发项目管理应用程序。为了减少对数据库的访问,我使用静态变量缓存了大量信息。例如,用户列表保存在内存中的静态类中。该类在启动时从数据库中读取所有信息,并在进行更改时更新数据库,但它永远不需要从数据库中读取。
该类在写入数据库的同时使用更新的信息 ping 其他网络服务器(如果它们存在)。ping 机制是一种 Windows 服务,缓存对象使用随机可用端口注册到该服务。它也用于其他事情。
数据量并不是那么大。目前我使用它只是为了缓存用户(密码哈希、权限、姓名、电子邮件等)。它只是保存了一堆对数据库的调用。
我想知道这种方法是否存在任何缺陷和/或是否有更好的方法来缓存数据?