本地数据和网络数据双向同步问题

时间:2021-03-03 22:15:43
比方说,一个用户(User)对象有n个任务数据对象(Task),任务数据对象包括(id,content....)等一系列属性。
现在服务端对Task进行了修改,客户端要通过json接口及时得到服务端的修改,
与此同时,客户端如果对Task进行了修改,服务端也要通过接口得到客户端的修改,并及时在服务端数据库保存。
但是现在客户端,是手机,而且是可以离线操作的,也就是说,手机离线操作了的内容,需要在联网之后通过点击同步按钮进行同步。
而且一个User对应多个手机,而手机都是可以离线操作的。
后来我想了个方法,就是利用类似svn的机制,类似有道云笔记,进行同步操作。
但是我没想明白的是,如果有大量数据,比方说1万条,怎么保证这1万条数据,完全同步,而且同步的速度要足够快。

数据在客户端可以修改,在服务端也能修改。

数据需要保证客户端和服务端的一致性。

数据同步需要速度很快。

比方说我现在有1000条数据同步了,有20条数据没同步,那怎么能知道这20条是没同步的?是每次客户端把所有的id号传到服务端?这肯定是不行的。

7 个解决方案

#1


去看看resync实现算法

#2


没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?

#3


一般是设置状态位

#4


引用 2 楼 cljlove 的回复:
没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?
本地要能离线查看的,所以不能清除

#5


引用 4 楼 longfan365 的回复:
引用 2 楼 cljlove 的回复:没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?本地要能离线查看的,所以不能清除

那就留着,更好了,呵呵!

#6


恩 数据库里面加个修改标签..... 来标记未上传的信息.....这样回传服务器的数据量就会变小 同样数据库端做修改标记 将修改过的相关ID依次发送修改后的数据给客户端.....不知道这样做能否满足楼主的需要........

#7


本地数据和网络数据双向同步问题

#1


去看看resync实现算法

#2


没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?

#3


一般是设置状态位

#4


引用 2 楼 cljlove 的回复:
没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?
本地要能离线查看的,所以不能清除

#5


引用 4 楼 longfan365 的回复:
引用 2 楼 cljlove 的回复:没同步的存本地,判断联网了,或者用户写同步了,就去同步,然后清除本地没同步的数据。
这样行不行?本地要能离线查看的,所以不能清除

那就留着,更好了,呵呵!

#6


恩 数据库里面加个修改标签..... 来标记未上传的信息.....这样回传服务器的数据量就会变小 同样数据库端做修改标记 将修改过的相关ID依次发送修改后的数据给客户端.....不知道这样做能否满足楼主的需要........

#7


本地数据和网络数据双向同步问题