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

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之mongodb简单安装与命令使用
转载源于:http://azwzsj.com/article/ieicce.html