这一段都在研究NoSQL,今天把mongoDB说一下:
Mongo是一个高性能,开源,模式自由(schema-free)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值(key-value)存储方式。Mongo使用C++开发,具有以下特性:
l 面向集合的存储:适合存储对象及JSON形式的数据。
l 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
l 完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
l 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
l 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
l 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
l 自动分片以支持云级别的伸缩性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。
MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。
MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。
MongoDB 在linux下安装(Ubuntu 9.10)
$wget http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz
$tar zxvf mongodb-linux-i686-latest.tgz
$cd mongodb-linux-i686-latest
4 启动服务
$bin/mongod run &
5 使用自带客户端连接
$ /bin/mongo
MongoDB php API在Ubuntu 安装如下(Ubuntu 9.10):
sudo pecl install mongo (使用pecl 要安装php5-pear,php5-pear可用apt-get安装)
如果pecl运行过程中提示内存不足,请修改php.ini使memory_limit至少为32M
pecl运行成功后将 extension="mongo.so"
此时运行# php -i | grep mongo 显示如下
此时用终端已经可以解析mongo了,但phpinfo()中没有mongo
故采用以下步骤(获得二进制版本然后编译):
git clone git://github.com/mongodb/mongo-php-driver.git
然后执行 $ cd php-mongodb
$phpize
$ ./configure
$ sudo make install
然后重启Apache ,一定要重启哦!
访问 http://127.0.0.1/phpinfo.php 显示结果如下
分享到:
相关推荐
1. 键值对存储(Key-Value Stores):如 Riak 和 Redis,以键作为唯一标识,支持快速存取。 2. 文档数据库(Document Databases):如 MongoDB,以 JSON、XML 等格式存储结构化文档,提供丰富的查询功能。 3. 列族...
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据...
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。 主要特性: 分布式 基于column的结构化 高伸展性 Cassandra的主要特点就是它不是一个数据库,而是由一堆...
总结:本文详细介绍了分布式文件系统,如GFS、HDFS和S3,以及NoSQL数据库的不同存储模型,如Key-Value、Column Family、文档存储和图存储,并强调了数据划分在大数据管理和组织中的重要性。这些技术共同构成了处理和...
在这个面试专题系列中,我们将聚焦于三个广受欢迎的分布式数据库技术:Memcached、Redis和MongoDB。 1. **Memcached**: - **简介**:Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提升...
NoSQL数据库主要分为四大类型:键值存储(Key-Value Stores)、文档存储(Document Stores)、列式存储(Column Stores)和图数据库(Graph Databases)。每种类型的NoSQL数据库都有其独特的应用场景和优势。 NoSQL...
NoSQL 最普遍的解释是“非关系型的”,强调 Key-Value Stores 和文档数据库的优点,而不是单纯的反对 RDBMS。 1.1 CAP 定理 CAP 定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个...
Redis是一个完全开源免费的、高性能(NOSQL)key-value数据库,遵守BSD协议。它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis的作者是...
它基于 Google 的 LevelDB 设计,并进行了优化和扩展,支持更广泛的应用场景,如大数据分析、实时查询以及数据库引擎。RocksDB 的设计目标是提供低延迟的读写性能,同时保持高效的数据持久化。 **1. 数据结构与存储...
2. 安装MongoDB:`sudo apt-get install -y mongodb-org` 或 `sudo yum install -y mongodb-org`。 3. 创建数据目录(例如:`/var/lib/mongodb`),并设置权限。 4. 修改配置文件(通常位于`/etc/mongod.conf`),...
1. **键值存储**(Key-Value Stores):如Redis,主要用于快速读写操作,适用于缓存场景。 2. **列族数据库**(Column Family Databases):如HBase,适合处理大规模分布式数据,适用于实时分析。 3. **文档数据库**...
MongoDB作为分布式Key-Value数据库,适用于存储切片和缓存数据;Elasticsearch适用于实时数据存储和管理流式点数据;HDFS(Hadoop分布式文件系统)适合存储超大和超多CVS文件,进行分布式计算;HBase则以其毫秒级...
NoSQL(NoSQL = Not Only SQL)意即“不仅仅是 SQL”,它指的是非关系型的数据库,是以 key-value 形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循 SQL 标准、ACID 属性、表...
其主要功能比 Dynomite(分布式的Key-Value存 储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。感兴趣的朋友可以...
首先,Mondis作为一款键值存储数据库,核心概念是键值对(key-value pair)。用户可以将任意类型的数据(如字符串、数字、哈希、列表、集合等)存储为键值对,便于快速检索和操作。这种数据模型非常适合缓存、计数、...
NoSQL数据库包括如KV(Key-Value)存储,例如Tair,这是一种由阿里巴巴开发的分布式Key-Value存储系统。Tair不仅支持基本的Key-Value操作,还支持更复杂的结构化数据存储,如列表、集合、哈希表等,适用于高并发、低...
<artifactId>mongodb-driver-sync <version>4.2.3 ``` 2. 连接MongoDB:使用`MongoClient`类创建连接,指定服务器地址和端口号。 ```java MongoClient mongoClient = MongoClients.create("mongodb://localhost:...
- **本质**:基于内存的Key-Value数据库,支持持久化。 - **特色**: - 纯内存操作,性能非常高。 - 支持多种数据类型,如字符串、列表、集合等。 - 单个value最大限制为1GB。 - 可以设置过期时间,支持数据...