网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Redis如何实现MongoDB的getlasterror功能

这篇文章主要为大家展示了“redis如何实现MongoDB的getlasterror功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis如何实现MongoDB的getlasterror功能”这篇文章吧。

创新互联建站专业为企业提供友好网站建设、友好做网站、友好网站设计、友好网站制作等企业网站建设、网页设计与制作、友好企业网站模板建站服务,十多年友好做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

MongoDB在写操作时,默认不会等数据写完后才返回,你可以通过使用getLastError命令来保证你的写是成功的。

说白了,MongoDB的写是异步的,返回给客户端成功但其写并不一定成功,而且在多个数据结点进行replication的时候,更无法保证数据同步到其它结点上。getLastError就是为此而生的,你指定一个条件,然后这个函数会一直阻塞到服务端告知这个条件满足了才会返回值。(当然,为了防止死等,这个函数还有一个超时参数),例子:

db.runCommand({getlasterror:1,w:2})

上面命令表示等写操作被写到两个结点再返回成功。

这一功能使得数据安全性的保证更加灵活。

而最近有朋友在Redis上也实现了这一功能,实现的方式不是修改Redis源码,而是使用现有的功能拼得出,具体过程如下:

Redis怎样实现MongoDB的getlasterror功能

1.ClientSUBSCRIBEstoKEYon*slave*

2.ClientwritesKEY(e.g.setfoobar)tomaster

3.ClientpublishesKEYtomaster

由于Redis的单线程写操作,下面两个操作会被顺序执行

4.MasterwillreplicateKEYtoslave

5Masterwillpropogate*PUBLISHKEY*toslave

最后,在Master同步完数据后,客户端会收到SUBSCRIBE的消息:

6.GetsKEYeventonSUBSCRIBE!

以上是“Redis如何实现MongoDB的getlasterror功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站题目:Redis如何实现MongoDB的getlasterror功能
当前路径:http://bjjierui.cn/article/gcgisp.html

其他资讯