文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

nosql之mongodb简单安装与命令使用

2024-04-02 19:55

关注

nosql:非关系型,分布式,不提供ACID

    简单数据模型

    元数据和应用数据分离

    弱一致性

优势:

    避免不必要的复杂性

    高吞吐量

    高水平扩展能力和低端硬件集群

    不使用对象-关系映射

劣势:

    不支持ACID特性

    功能简单

    没有统一的数据查询模型

ACID:atomicity原子性、consistency一致性、isolation隔离、durability持久性

nosql分类:

    列式数据库(按列管理)

    键值存储

    文档数据库(每一行当做一个实体,独立的文件)

    图存数据库(有复杂关系的图存对象),在社交站点用来存储人与人之间的复杂关系


nosql的数据存储模型

    列式数据库(按列管理)

        数据模型:数据按列存储,将同一列数据存在一起

优点:查找迅速,可扩展性强,易于实现分布式

缺点:功能相对sql有限

应用场景:分布式文件系统或分布式存储

实例:bigtable、cassandra、HBase、hypertable(海量数据存储)

    跑在分布式文件系统上

    键值存储(数据模型:key-value存储)

        优点:查找迅速

缺点:数据无结构,通常只被当作字符串或二进制数据

应用场景:内容缓存

实例:redis、dynamo

    文档数据库(每一行当做一个实体,独立的文件)

数据模型:与键值模型类似,但value指向结构化数据,多个键值对上面附加了一个容器

优点:数据格式要求不严格,无需事先定义结构

增加某个字段不需要改动其数据结构

缺点:查询性能不高缺乏统一查询语法

应用场景:web应用

实例:MongoDB、couchDB

    图存数据库(有复杂关系的图存对象),在社交站点用来存储人与人之间的复杂关系

数据模型:图结构模型

优点:利用图结构相关算法,×××能,并满特殊场景应用需求

缺点:难以实现分布式,功能有定向性

应用场景:社交网络、推荐系统、关系图谱

实例:Neo4J


mongodb:scalable(可扩展的)high-performance(高性能)open source schema free document nosql

    schema free:不需要事先创建数据结构

    读写在内存中

    支持扩展性:复制、自动分片

    适用于:web站点、缓存、高可扩展性、high volume,low value


mongodb的安装:这里推荐用rpm包安装

    rpm包地址:https://repo.mongodb.org/yum/redhat,选择自己的版本进行下载

    yum -y localinstall *.rpm

    mkdir -p /mongodb/data:创建数据目录,修改配置文件中的数据目录路径

    usermod -d /mongodb/data mongod

    chown -R mongod:mongod /mongodb/data:修改数据目录的属主属组

最后简单的修改一下配置文件的信息(数据目录,日志目录等等)

    最后就可以启动mongod

    service mongod start

查看日志记录,发现如下警告:

cat /var/log/mongodb/mongod.log查看日志,报错如下:

** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. 

Number of processes should be at least 32000 : 0.5 times number of files.

参考:http://blog.csdn.net/kk185800961/article/details/45613267

mongodb当前限制:1024 processes, 64000 files

mongodb建议要求:processes = 0.5*files=32000(至少)

所以需要将 processes  从1024 改为 32000 或更大.

修改配置文件 /etc/security/limits.conf,添加配置信息:

###############for mongodb##############

mongod    soft   nofile   64000

mongod    hard   nofile   64000

mongod    soft   nproc    32000

mongod    hard   nproc    32000

然后重启mongod,再次查看日志记录,发现没有警告了,于是安装mongodb成功了



mongodb的简单grud操作:

>help(查看帮助)

    db.help()                    help on db methods

    db.mycoll.help()             help on collection methods

    sh.help()                    sharding helpers

    rs.help()                    replica set helpers

    help admin                   administrative help

    help connect                 connecting to a db help

    help keys                    key shortcuts

    help misc                    misc things to know

    help mr                      mapreduce


    show dbs                     show database names

    show collections             show collections in current database

    show users                   show users in current database

    show profile                 show most recent system.profile entries with time >= 1ms

    show logs                    show the accessible logger names

    show log [name]              prints out the last segment of log in memory, 'global' is default

    use <db_name>                set current database

    db.foo.find()                list objects in collection foo

    db.foo.find( { a : 1 } )     list objects in foo where a == 1

    it                           result of the last line evaluated; use to further iterate

    DBQuery.shellBatchSize = x   set default number of items to display on shell

    exit                         quit the mongo shell


查看所有库:show dbs

查看所有集合(在mysql是表,在mongodb中用集合):show collections

切换库:use huangdb(无需在此前定义,直接拿来使用库就行)

向集合huangcoll中插入数据:db.huangcoll.insert({Name:"huang"})

查看集合的数据:db.huangcoll.find():这是查看集合huangcoll的所有数据

按条件查找数据:db.huangcoll.find({Name:"huang"}):找出Name为huang的文档

创建索引:db.huangcoll.ensureIndex({Name:1}):给字段Name创建索引

查看索引:db.huangcoll.getIndexes():查看当前集合下的所有索引

更多mongo命令操作,参考文档:

https://docs.mongodb.com/manual/crud/

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯