nosql之mongodb简单安装与命令使用-创新互联

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

创新互联从2013年成立,先为颍东等服务建站,颍东等地企业,进行企业商务咨询服务。为颍东企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

    简单数据模型

    元数据和应用数据分离

    弱一致性

优势:

    避免不必要的复杂性

    高吞吐量

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

    不使用对象-关系映射

劣势:

    不支持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/

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:nosql之mongodb简单安装与命令使用-创新互联
文章URL:http://pwwzsj.com/article/hgise.html