不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!
mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍,刚好我们的生产业务场景中就有一个案例。。。
一:案例分析
生产的推荐系统要给用户发送短信和邮件的关联营销。第一波:当用户在淘宝下单之后发送一次短信和邮件千人千面,第二波:为了增加回购率,10天之后将会再次触发短信和邮件方式的千人千面,场景就这样的,流程图如下。
技术上来说:第一波营销中已经下单成功的客户需要给保存起来,因为10天后需要对这一批用户再发送一次,如果不让数据无限膨胀,我需要不断清理 >10 天的数据,写个脚本虽然简单但没这个必要,可以用 mongodb 中的 ttlindex 索引来搞定这件事,设定 10天 之后自动过期。
二:ttlIndex
现在我想大家对 ttlIndex 有了大概的认识,查一下官方文档:https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex, 看看这种 ttlIndex 怎么创建?
db.collection.createIndex(keys, options)
从 options 中的 expireAfterSeconds 参数来看,这个 value 是一个 int 型的 second,而且这个 ttlIndex 是需要建立在docment的field上面的,接下来创建一个简单的planeollection,并且date的过期时间是2s,主要是用来测试一下嘛。。。
过 60s 之后再查看一下数据,数据已经没有啦~~~
可能有些人就有疑问了,为什么这里要说最多 60s 之后再查看数据,当然是有原因的,因为 mongod 底层机制会开一个 background task,60s轮转一次,不信的话,你可以看下官网的描述哦!
好了,本篇就说这么多,希望对你有帮助。
- Oracle垃圾数据清理相关问题 分类: Oracle 2015-08-06 11:14 12人阅读 评论(0) 收藏
- 清理吉日嘎拉走火入魔C#.NET通用权限管理系统组件表数据的脚本方法参考
- mongoDB+hive/hbase数据导入,Datax配置及脚本
- Oracle垃圾数据清理相关问题
- 用脚本写的 网络/系统诊断/垃圾清理三合一
- MongoDB 清理数据
- 清理系统垃圾文件的常用脚本
- 通过shell脚本实现mysql数据备份与清理
- 发个真正高效清理垃圾的脚本(请慎用,效果很强)
- 通过bat脚本清理计算机中的垃圾文件
- mongodb数据备份脚本和日志切割脚本
- windows系统垃圾清理脚本
- MongoDB自动删除过期数据--TTL索引
- Greenplum 清理垃圾、修改存储模式(行列变换) 平滑方法 - 交换数据、交互分区
- About Windows下清理一些系统垃圾文件的bat脚本
- 发个真正高效清理垃圾的脚本(请慎用,效果很强)
- 自动清理垃圾的脚本.bat
- shell脚本定时删除mongodb的数据
- 电脑给山寨内存卡清理垃圾丢失了数据怎么恢复
- 垃圾清理脚本