热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

nosql:非关系型,分布式,不提供ACID    简单数据模型    元数据和应用数据分离   &n

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                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/


推荐阅读
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • 深入解析 Python 中的 NumPy 加法函数 numpy.add() ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
  • Deepin 20 系统源更换指南及基础设置教程
    配置目标:创建一个适合基本娱乐、办公和直播的环境。安装方法:手动分区。系统要求:EFI分区需大于500MB,根分区建议至少20GB,以确保系统稳定运行和足够的存储空间。此外,建议分配适量的交换分区,以提升系统性能和响应速度。 ... [详细]
  • 机顶盒,即数字电视机顶盒(Digital TV Set-Top Box,简称STB),是一种放置在电视机旁的设备。它主要用于将数字信号转换为电视能够识别的模拟信号,从而实现高质量的视频和音频播放。机顶盒不仅支持基本的电视节目接收功能,还具备多种增值服务,如互动点播、网络浏览等。随着技术的发展,现代机顶盒集成了更多的智能功能,成为家庭娱乐的重要组成部分。 ... [详细]
author-avatar
chenliuyan13
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有