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.日志查看日志,报错如下:
* *警告:软rlimits太低了。rlimits设置为1024的过程,64000个文件只
的进程数量应该至少32000:文件数量的0.5倍。
参考:http://blog.csdn.net/kk185800961/article/details/45613267
mongodb当前限制:1024年过程中,64000个文件
mongodb建议要求:流程=0.5 *文件=32000(至少)
所以需要将流程,从1024改为32000或更大。
修改配置文件/etc/security/limits.相依,添加配置信息:
# # # # # # # # # # # # # # # mongodb的# # # # # # # # # # # # # #
mongod,柔软的大敌;nofile,64000年
mongod,艰难的大敌;nofile,64000年
mongod,柔软的大敌;nproc,32000年,
mongod,艰难的大敌;nproc,32000年,
然后重启mongod,再次查看日志记录,发现没有警告了,于是安装mongodb成功了
mongodb的简单grud操作:
祝辞帮助(查看帮助)