求救 关于winform数据缓存的问题
写的winform系统 要操作服务器上的数据库 为了避免操作服务器过于频繁 将一些不是太容易改变的信息存在客户端了(例如会员信息) 但由于是多客户端 例如客户端A和客户端B 有神马方法在A改变会员信息的时候 让B也能实时更新相应数据吗?
------解决方案--------------------在服务器上放个缓存,所有客户端修改后都要通知服务端,服务端更改这个缓存,并记录当前版本信息,然后其他客户端登陆时提交客户端最新缓存版本与之比较,如果不一致,客户端重新从服务端下载缓存并将本客户端缓存版本信息改成服务器上的缓存版本
------解决方案--------------------winfrom 没有什么缓存的说法吧.
不太容易改变的数据 ,建议客户端每次启动的时候,读取 下来 ,然后写一个文件.
将数据保存至本地 . 然后之后的操作都从文件里取.
至于客户A改变了数据,然后客户B的界面马上刷新.
服务端数据库不会通知你 ,我的数据是最新的 . 但是你可以每次去获取最新的.
那这样的话,你的整个需求就有些矛盾了.
------解决方案--------------------你要是想让A修改后B立即更新,那就得用Remoting技术,A->通知服务器->服务器通知所有客户端
------解决方案--------------------或TCP通讯也可以
------解决方案--------------------你说得不就是类似QQ聊天记录么,我说的是简单几个客户端可以通过点对点通信保持同步。如果客户端多了,修改数据也多……岂不是每个客户端都成服务器了?
所以我认为你的设计思路就不对!本地缓存适合不经常修改而且不影响其他用户的一些数据,否则不仅有设计和性能上的问题,还有安全和隐私问题。不想经常访问数据库,可以用服务器上的数据缓存啊;如果你客户端之间要同步,其技术复杂性和网络数据传输量、性能的影响,比都从服务器读要都要增加太多。