C# 多台计算机上Winforms应用程序网络的中央缓存

C# 多台计算机上Winforms应用程序网络的中央缓存,c#,winforms,caching,networking,central,C#,Winforms,Caching,Networking,Central,我在C中使用WinForms应用程序的.NET缓存。该应用程序直接连接到远程数据库服务器,不需要任何服务层,缓存在安装应用程序的客户机上维护 现在我可以在网络上的多台机器上工作,实例将连接到中央数据库。问题是,当一个实例在数据库中添加记录时,其他机器仍然包含旧数据的缓存 我需要知道使该缓存成为网络上所有应用程序实例的中心的可能解决方案,以便当一个实例修改数据时,将刷新其余网络节点的缓存 我们如何为网络上的所有应用程序实例实现中央缓存?我们遇到了同样的问题,我们将缓存实现到数据库中 如果没有任何服

我在C中使用WinForms应用程序的.NET缓存。该应用程序直接连接到远程数据库服务器,不需要任何服务层,缓存在安装应用程序的客户机上维护

现在我可以在网络上的多台机器上工作,实例将连接到中央数据库。问题是,当一个实例在数据库中添加记录时,其他机器仍然包含旧数据的缓存

我需要知道使该缓存成为网络上所有应用程序实例的中心的可能解决方案,以便当一个实例修改数据时,将刷新其余网络节点的缓存


我们如何为网络上的所有应用程序实例实现中央缓存?

我们遇到了同样的问题,我们将缓存实现到数据库中

如果没有任何服务层,可以使用DB层过程或触发器等

首先,我们制作了现金表。例如,缓存数据

在多台机器执行DMLUpdate、Insert、Delete数据后,服务层或数据库根据最新信息更新缓存数据。这样其他机器也可以参考该表

如果DML执行得太频繁,您可以在CHACHE_数据中添加上次兑现时间字段

i最快兑现时间<套管间隔 { 不要追逐 } 其他的 { 哄骗
}

我们正在缓存许多表的信息,每个表都有不同的结构。那么我们如何将所有信息保存在缓存数据中呢?如果我们使用KeyValue结构,那么成本将比我认为的普通表更高。有一些解决方案可以帮助您使客户端缓存无效,例如使用信号器、SQL依赖项、Service Broker队列、MSMQ等。但最有可能的是,您最终会将应用程序更改为使用服务层,您正在寻找服务器端缓存。询问最佳方式的问题通常是基于观点和离题的。您可能想询问一些可能的解决方案。此外,您还需要解释DBMS、表的数量、数据访问层实现、更改频率、您现在实现缓存和使缓存失效的方式、应用程序的规模、身份验证机制、停止使用服务层的限制等。感谢您的建议,我改进了这个问题。我的数据库有数百个表,更新非常频繁。应用程序只是一个三层结构,数据访问层包含对维护缓存的数据库的调用。我想在客户端保留缓存,所以添加服务层是不可行的,因为我在客户端UI层使用SQL事务,其中初始化了多个调用,因为每个系统直接访问数据库。更新非常频繁→ 因此,客户端缓存将给服务器和客户端带来很大的压力。