课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
一般带有服务器功能的软件在数据更新等问题的处理上都是比较延迟的,尤其是有些大批量的数据可能会很长时间才会更新一次,为了优化我们的服务器功能,今天给大家分享了关于数据更新的一些思路方法,一起来了解一下。
客户端(或浏览器)缓存数据的痛点在于,数据何时更新?如何让客户端知道,服务端数据变了?
分四步走。
一步,初次请求数据时
客户端在初次请求数据时,会把客户端想要的数据连同数据的版本号(数据上次的更新时间)一起发送给客户端,数据版本号时存在Redis数据库中的,我们知道,Redis中的数据存储在内存中且读取数据比关系型数据库快的不是一点点。
客户端收到数据后,会把收到的数据和数据版本号缓存下来。
二步,当数据库数据更新时
当数据库数据更新时,服务端在更新关系型数据库的同时会把Redis的数据版本号更新为当前时间。
三步,客户端用数据时:
客户端需要使用缓存数据时,会向服务端索要数据版本号(也就是数据上次的更新时间),如果该数据版本号与客户端缓存的数据版本号一致,那么,客户端缓存的数据时安全可用的,如果不一致,那么说明数据已经更新了,客户端把新的版本号缓存下来并重新获取。那么,执行四步。
四步,重新获取数据
重新获取数据时,就不用携带版本号了,客户端在三步时已经获取并缓存下来了。
利弊
好处:
1.当请求的数据量交大但是变动又不频繁时,客户端与服务端不必频繁地交换大型数据,只需交换数据版本号即可。
2.数据版本号存储在Redis数据库中,不仅读取速度快,而且数据量小,所以响应快,交换成本低。
3.该思路通用性强,适合任何类型的关系型数据库与Nosql数据库搭配使用。
弊端:
1.客户端在每次使用数据前,都要与服务端进行一次通讯进行校验数据版本号。
作者:码农阿宇
来源:博客园
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。