不想写脚本清理 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轮转一次,不信的话,你可以看下官网的描述哦!
好了,本篇就说这么多,希望对你有帮助。
不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!相关推荐
- mongodb存储数据_在MongoDB中存储分层数据
mongodb存储数据 继续使用MongoDB进行 NoSQL之旅,我想谈一谈一个经常出现的特定用例:存储分层文档关系. MongoDB是很棒的文档数据存储,但是如果文档具有父子关系,该怎么办? 我们 ...
- 在MongoDB中存储分层数据
继续使用MongoDB进行 NoSQL之旅,我想触摸一个经常出现的特定用例:存储分层文档关系. MongoDB是很棒的文档数据存储,但是如果文档具有父子关系怎么办? 我们可以有效地存储和查询此类文档层 ...
- 【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。
我想写一本书,书名是<中国文学史>,帮我列一下目录,细化到三级目录,不少于2000字. 中国文学史 第一章 经典文学 1.1 先秦文学 1.1.1 先秦诗歌 1.1 ...
- python中接口测试垃圾数据如何清理_Python接口测试题(持续更新中)
1.json和字典的区别? Json是轻量级的数据交互格式,以key-value的键值对形式来保存数据,结构清晰,可以说是目前互联网项目开发中最常用的一种数据交互格式. 字典,同样是以key-valu ...
- spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...
1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...
- python中接口测试垃圾数据如何清理_一个六年经验的python后端是怎么学习用java写API的(2)Extracter,微信文章抓取清洗入库...
描述 pirate 是由我的 django 脚手架 original 实现的,文件上传提供了七牛和腾讯云两个 backend,部署提供了默认的配置文件,因此只要关注具体的微信的抓取逻辑即可. 核心表讲 ...
- python中接口测试垃圾数据如何清理_接口测试---Python数据处理需要注意的细节
一.json模块中的dumps方法 请求接口时params肯定是dict类型的,就是这种{"A":"B"},因为需要传json格式的参数到服务端,但是为了降低c ...
- python中接口测试垃圾数据如何清理_巧用PyUnit中unittest特性解决接口测试产生脏数据问题...
巧用PyUnit中unittest特性解决接口测试产生脏数据问题 一.背景 测试数据创建后需要对其删除,不然可能产生脏数据,对开发和测试.生产环境造成一定影响.其接口框架是基于Python,API规范 ...
- 安卓一键清理内存_垃圾一键清理大师软件下载-垃圾一键清理大师下载v3.2.2 安卓版...
垃圾一键清理大师软件内置了手机加速.程序管理等功能,既可以时刻清理手机中的垃圾数据,也可以一键整理桌面,让手机每天都运行流畅!这款应用不管在任何安卓智能手机上都可以使用,界面清爽,使用过程中没有广告骚 ...
最新文章
- 20个非常有用的Java程序片段
- LR(0)语法制导翻译
- NSMutableArray 如果只进行了声明,而没有进行初始化,那么程序不会报错,但是,声明的那个变量不起任何作用...
- autofac 作用域_控制作用域和生命周期
- vue打包路径.html问题,如何解决vue.js打包报错问题
- 外卖菜谱小程序源码-带流量主功能-外卖领劵个人也可过审
- JavaScript:Functions
- BP神经网络的数学原理及其算法实现
- 「转发领抱枕」40万奖金等你来挑战!阿里云ECS Cloudbuild开发者大赛重磅开启
- js-JavaScript常见的创建对象的几种方式
- Vissim4.3之API/SDK编程;Vissim编程;
- 中国医科大学2021年12月《医学遗传学》作业考核试题
- matlab中求特征值的eig函数说明
- 360打开html加载不出来,360浏览器显示正在解析主机打不开网页如何处理
- 设计一个立方体类(长方体)Box,它能计算并输出立方体的体积和表面积。
- 一阶电路实验报告心得_一阶rc电路实验总结
- 沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第七章 GTP的IP核配置
- 论程序员成长中不可避免的选择,薪资与积累
- 网电空间战 3-战斗空间
- T检验中有哪些指标?