没有合适的资源?快使用搜索试试~ 我知道了~
首页NoSQL数据库-MongoDB和Redis
NoSQL数据库-MongoDB和Redis

CAP(Consistency,Availabiity,Partition tolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。关系型数据库通过把更新操作写到事务型日志里实现了部分耐用性,但带来的是写性能的下降。MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要选择MySQL等关系数据库
资源详情
资源评论
资源推荐

NoSQL 数据库
—MongoDB 和 Redis

目 录
1NoSQL 简述.................................................................................................................................. 4
2MongoDB 简介............................................................................................................................. 4
3 术语介绍..................................................................................................................................... 5
4MongoDB 资源消耗..................................................................................................................... 6
5 交互式 shell................................................................................................................................. 6
6 一般功能..................................................................................................................................... 7
6.1 插入.................................................................................................................................. 7
6.2 查询.................................................................................................................................. 7
6.3 删除.................................................................................................................................. 8
6.4 索引.................................................................................................................................. 8
6.5map/reduce....................................................................................................................... 8
7 模式设计..................................................................................................................................... 8
8 嵌入与引用................................................................................................................................. 9
9GridFS......................................................................................................................................... 11
9.1GridFS 表示的对象信息.................................................................................................. 12
9.2GridFS 管理...................................................................................................................... 13
10Replica&on(复制)................................................................................................................ 13
10.1master-slave 模式.......................................................................................................... 13
10.2replica pairs 模式........................................................................................................... 14
10.3 受限的 master-master 复制.......................................................................................... 14
11Sharding(分片).................................................................................................................... 15
11.1sharding 介绍................................................................................................................. 15
11.2sharding 的配置和管理................................................................................................. 16
12Java API 简介............................................................................................................................ 16
13MongoDB 实例分析................................................................................................................. 17
13.1 图片保存在文件系统中............................................................................................... 18
13.2 图片保存在数据库中................................................................................................... 20
14MongoDB 常用 API 总结........................................................................................................... 24
15Redis 简介................................................................................................................................ 27
15.1Redis 特性...................................................................................................................... 28
16Redis 数据类型......................................................................................................................... 29
16.1String 类型..................................................................................................................... 29
16.2List 类型......................................................................................................................... 29
16.3Set 类型......................................................................................................................... 30
16.4ZSet 类型....................................................................................................................... 30
16.5Hash 类型...................................................................................................................... 30
17All data in memory, but saved on disk....................................................................................... 30
18Redis 的 Master-Slave 模式....................................................................................................... 31
19Redis 虚拟内存管理................................................................................................................. 32
20Redis 实例分析......................................................................................................................... 32
21Redis 命令总结......................................................................................................................... 33

21.1 连接操作相关的命令................................................................................................... 33
21.2 对 value 操作的命令..................................................................................................... 33
21.3 对 String 操作的命令.................................................................................................... 34
21.4 对 List 操作的命令........................................................................................................ 35
21.5 对 Set 操作的命令........................................................................................................ 35
21.6 对 zset(sorted set)操作的命令................................................................................ 36
21.7 对 Hash 操作的命令..................................................................................................... 37
21.8 持久化.......................................................................................................................... 37
21.9 远程服务控制............................................................................................................... 37

NoSQL 数据库
—MongoDB 和 Redis
1NoSQL 简述
CAP(Consistency,Availabiity,Partition tolerance)理论告诉我们,一个分布式系统不
可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。关系型数据
库通过把更新操作写到事务型日志里实现了部分耐用性,但带来的是写性能的下降
MongoDB 等 NoSQL 数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库 ,
MongoDB 通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为
MongoDB 是非原子性的,所以如果如果应用需要事务,还是需要选择 MySQL 等关系数据
库。
NoSQL 数据库,顾名思义就是打破了传统关系型数据库的范式约束。很多 NoSQL 数
据库从数据存储的角度看也不是关系型数据库,而是 key-value 数据格式的 hash 数据库。
由于放弃了关系数据库强大的 SQL 查询语言和事务一致性以及范式约束,NoSQL 数据库
在很大程度上解决了传统关系型数据库面临的诸多挑战。
在社区中,NoSQL 是指“not only sql”,其特点是非关系型,分布式,开源,可水平扩
展,模式自由,支持 replication,简单的 API,最终一致性(相对于即时一致性,最终一致
性允许有一个“不一致性窗口”,但能保证最终的客户都能看到最新的值)。
2MongoDB 简介
mongo 取自“humongous”(海量的),是开源的文档数据库──nosql 数据库的一种。
MongoDB 是一种面向集合(collection)的,模式自由的文档(document)数据库。
面向集合是说数据被分成集合的形式,每个集合在数据库中有惟一的名称,集合可以
包含不限数目的文档。除了模式不是预先定义好的,集合与 RDBMS 中的表概念类似,虽
然二者并不是完全对等。数据库和集合的创建是“lazy”的,即只有在第一个 document 被插
入时集合和数据库才真正创建——这时在磁盘的文件系统里才能看见。
模式自由是说数据库不需要知道存放在集合中的文档的结构,完全可以在同一个集合
中存放不同结构的文档,支持嵌入子文档。
文档类似于 RDBMS 中的记录,以 BSON 的格式保存。BSON 是 Binary JSON 的简称,
是对 JSON-like 文档的二进制编码序列化。像 JSON(JavaScript Object Notation )一样

BSON 支持在对象和数组内嵌入其它的对象和数组。有些数据类型在 JSON 里不能表示,
但可以在 BSON 里表示,如 Date 类型和 BinData(二进制数据),Python 原生的类型都可
以表示。与 Protocal Buffers(Google 开发的用以处理对索引服务器请求/应答的协议)相比,
BSON 模式更自由,所以更灵活,但这样也使得每个文档都要保存字段名,所以空间压缩
上不如 Protocol Buffers。
BSON 第一眼看上去像 BLOB,但 MongoDB 理解 BSON 的内部机制,所以 MongoDB
可以深入 BSON 对象的内部,即使是嵌套的对象,这样 MongoDB 就可以在顶层和嵌套的
BSON 对象上建立索引来应对各种查询了。
MongoDB 可运行在 Linux、Windows 和 OS X 平台,支持 32 位和 64 位应用,默认端口
为 27017。推荐运行在 64 位平台,因为 MongoDB 为了提高性能使用了内存映射文件进行
数据管理,而在 32 位模式运行时支持的最大文件为 2GB。
MongoDB 查询速度比 MySQL 要快,因为它 cache 了尽可能多的数据到 RAM 中,即使
是 non-cached 数据也非常快。当前 MongoDB 官方支持的客户端 API 语言就多达 8 种(C|
C++|Java|Javascript|Perl|PHP|Python|Ruby ) , 社 区 开 发 的 客 户 端 API 还 有
Erlang、Go、Haskell......
3 术语介绍
数据库、集合、文档
每个 MongoDB 服务器可以有多个数据库,每个数据库都有可选的安全认证。数据库
包括一个或多个集合,集合以命名空间的形式组织在一起,用“.”隔开(类似于 JAVA/
Python 里面的包),比如集合 blog.posts 和 blog.authors 都处于"blog"下,不会与 bbs.authors
有名称上的冲突。集合里的数据由多个 BSON 格式的文档对象组成,document 的命名有一
些限定,如字段名不能以"$"开头,不能有".",名称"_id"被保留为主键。
如果插入的文档没有提供“_id”字段,数据库会为文档自动生成一个 ObjectId 对象作为
“_id”的值插入到集合中。字段“_id”的值可以是任意类型,只要能够保证惟一性。 BSON
ObjectID 是一个 12 字节的值,包括 4 字节的时间戳,3 字节的机器号,2 字节的进程 id 以
及 3 字节的自增计数。建议用户还是使用有意义的“_id”值。
MongoDb 相 比于 传统 的 SQL 关 系型 数 据 库 ,最 大 的不 同在 于它 们的 模式 设计
(Schema Design)上的差别,正是由于这一层次的差别衍生出其它各方面的不同。
如果将关系数据库简单理解为由数据库、表(table)、记录( record)三个层次概念
组成,而在构建一个关系型数据库的时候,工作重点和难点都在数据库表的划分与组织上
一般而言,为了平衡提高存取效率与减少数据冗余之间的矛盾,设计的数据库表都会尽量
满足所谓的第三范式。相应的,可以认为 MongoDb 由数据库、集合(collection)、文档对
剩余36页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论2