大佬教程收集整理的这篇文章主要介绍了mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍,
刚好我们的生产业务场景中就有这个一个案例。。。
我们生产的推荐系统要给用户发送短信和邮件的关联营销。第一波是:当用户在淘宝上下订单之后,我们发送一次短信和邮件千人千面,第二波:
为了增加回购率,当用户在10天之后的交易默认完成之后,我们将会再次触发短信和邮件方式的千人千面,场景就这样的,针对这种场景,我就画出了
下面的图。
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/dd4f5e27fefbe986c7890c276a83b46e.png" >
其实呢,业务场景就是这样的,看起来非常简单,重点就在这里,第一波营销中已经下单成功的客户我们需要给保存起来,因为10天后我们需要对这
一批用户再发送一次,这样我们就需要用R_88_11845@ongodb把当时已经下单成功的用户保存到mongodb中,如果你不maintain mongodb的话,那么mongodb
的数据将会积压的越来越多,这个时候我们就需要有一个机制,清空mongodb中10天之前的数据,对吧,因为这些数据已经是垃圾数据了,为了免去自己
写个脚本去清除这些麻烦的数据,这次我们使用ttlindex来让这些数据保存10天,也就是10天之后自动过期。
现在我想大家对ttlIndex有了大概的认识了,下面我们看看怎么创建,我使用的GUI工具是robomongo,大家可以在官网上下载一下即可。。。然后我们
要查询一下https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex,看看这种collection
怎么创建。
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/ab9e83330a7beec854dcadecb981d3ed.png" >
从这个options中的expireAfterSeconds参数来看,这个value是一个int,并且是以second为单位,然后我们可以看到,这个ttlIndex是需要建立在dOCMent
的field上面的,然后我们继续往下看。
从这句话中其实可以看到,这个field字段要么是date,要么是array中含有date字段,ok,看完这里,我们都明白了,接下来,我们创建一个简单的planeollection,
并且date的过期时间是2s,主要是用来测试一下嘛。。。
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/397f72e27e868db94158df74d63718b8.png" >
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/99ac0058658465f981f530b21e079853.png" >
ok,其实就是这么简单,然后我们过60s之后再查看一下数据,可以看到,数据已经没有啦~~~
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/fb9afeedca81bb54151f23dcad7c813c.png" >
可能有些人就有疑问了,为什么这里要说最多60s之后再查看数据,当然是有原因的,因为mongod有一个BACkground task,60s启动一次进行index scan,
如果过期,那么就会进行清除,不信的话,你可以看下官网的描述哦。
title="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" alt="mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理" src="https://cn.js-code.com/res/2019/02-17/00/b357d6ab5e529546ef4e54b5c66ac7c9.png" >
好了,本篇就说这么多,我想大家应该也知道了如何使用ttlIndex,当然我们也在幸福满满的使用这个玩意,感谢感谢~~~
以上是大佬教程为你收集整理的mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理全部内容,希望文章能够帮你解决mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。