mongodb固定集合、TTL集合

2024-03-15 07:32
文章标签 mongodb 集合 固定 ttl

本文主要是介绍mongodb固定集合、TTL集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mongodb固定集合、TTL集合

在数据量较少的情况下,或者只需要保存部分的数据,使用固定集合不失为一个比较好的选择。

  • 插入、查询的速度非常快。

创建固定集合

  • 有点类似数据结构中的循坏队列,先进先出方式。满队列删除原来的元素。

  • 固定集合与普通集合有所不同,需要显示的创建,指定size,max参数。当其中某个条件满足,将会删除最先进来的元素。

  • db.createCollection(“test_log”,{capped:true,size:2,max:2})
    查看索引
    mongos> db.test_log.getIndexes()
    [
    {
    “v” : 1,
    “key” : {
    “_id” : 1
    },
    “name” : “id“,
    “ns” : “admin.test_log”
    }
    ]

  • 自然排序的方式,在mongodb3.0以上默认采用_id作为索引。

  • 也可以自定义索引。

转换为固定集合

  • 普通集合可以通过 convertToCapped将普通集合转为固定集合

    db.runCommand({convertToCapped:”test_2”,size:10,max:3})

     但是固定集合的特点是:
     不能进行分区,因为它本身就是不是针对大数据集合的,所以,也许这个时候可以考虑使用TTL索引。

TTL集合

通过创建TTL索引,就构建了一个TTL集合,索引建立的原则:
- 索引字段必须为时间类型
- 在本地上进行测试,进行多个分片,片键选择为key1+timeKey,成功分片。
- 确保数据保存在一定范围内,其实主要是后台有一个线程,平均60s执行一次,对超期的数据进行删除。所以,这部分也有性能的损耗,需要权衡。

建立语句:

db.ttl_test.ensureIndex({“time”:1},{expireAfterSeconds:20}})

设置其为20s后删除数据,真实情况下可能并不能精确到20s.

选择

对于大数据量来说,希望只保存几个月的数据,固定集合与TTL貌似都是对数据进行的限制。但是固定集合无法精确到具体的时间,文档的条数与文档大小都不能确定。主要是固定集合无法分片,对于需要经常查询的可能就不是太合适。
当然仅仅保存log文件,查看最新的log还是不错的选择

这篇关于mongodb固定集合、TTL集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811231

相关文章

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

Java中的集合框架使用技巧

Java中的集合框架使用技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中集合框架的使用技巧,这些技巧能够帮助我们更高效地处理数据和优化程序性能。 Java集合框架概述 Java集合框架提供了一组实现了各种集合接口的类和接口,用于存储和操作数据。它包括列表、集合、队列和映射等数据结构,能够满足不

Java零基础-集合:Set

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛   今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。   我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初

Java零基础-集合:List

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛   今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。   我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初

瑞_MongoDB_MongoDB副本集

文章目录 1 MongoDB副本集-Replica Sets1.1 简介1.2 副本集的三个角色1.3 副本集架构目标1.4 副本集的创建1.4.1 创建主节点1.4.2 创建副本节点1.4.3 创建仲裁节点1.4.4 初始化配置副本集和主节点1.4.5 查看副本集的配置内容 rs.conf()1.4.6 查看副本集状态1.4.7 添加副本从节点1.4.8 添加仲裁从节点 1.5 副本集的数

常见兼容性问题集合

* png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.也可以引用一段脚本处理.* 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。* IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。 * 浮动ie产生的双倍距离(IE6双边距问题:在IE6下,如果对

添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?

问题:添加一个对象到集合中时,集合里面存放的是对象的引用还是对象本身?   答:对象的引用。以下代码可以证明: Java代码   import java.util.ArrayList;   import java.util.List;      public class Test5 {       public static void main(String args[])

一、系统学习微服务遇到的问题集合

1、启动了nacos服务,没有在注册列表 应该是版本问题 Alibaba-nacos版本 nacos-文档 Spring Cloud Alibaba-中文 Spring-Cloud-Alibaba-英文 Spring-Cloud-Gateway 写的很好的一篇文章 在Spring initial上面配置 start.aliyun.com 重新下载 < 2、 No Feign Clie

MongoDB数据库的安装和删除

MongoDB数据库的删除和安装 1、删除MongoDB数据库2、下载MongoDB数据库1)、自定义安装2)、注意可视化可以取消勾选 1、删除MongoDB数据库 没有下载过的,可以直接跳到下面的安装过程↓ 我们电脑中如果有下载过MongoDB数据库,要更换版本的话,其实MongoDB数据库的删除是比较简单的,打开我们电脑的控制面板,然后找到MongoDB右击卸载删除即可。

java的单例集合迭代器

迭代器Iterator         根据之前的介绍我们知道,单例集合是由接口Collection定义的容器。Collection接口之下由定义了List接口和Set接口,其中List接口定义的容器的特征是有序可重复,而Set接口定义的容器的特征是无序不可重复的。         List接口定义的容器的底层是通过数组来实现的,它的每一个容器中的元素都具有属于自己的索引,因此可以定义重复的元