一、什么场合使用缓存?
1:数据量大;
2:写入操作频繁;
3:价值较低
对于这样的数据,我们更适合使用MongoDB来实现数据的存储。
二、什么是MongoDB
MongoDB是一个跨平台的,面向文档的数据库,是当前NoSQL数据库产品中最热门的一种。他介于关系数据库和菲关系数据库之间,是非关系型数据库当中功能最丰富,最像关系数据库的产品。他支持的数据库非常松散,是类似JSON的BSON格式,因此可以存储比较复杂的数据类型。
三、MongoDB体系结构
MongoDB的逻辑结构是一种层次结构。主要由:
文档(Document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用MongoDB开发应用程序使用的就是逻辑结构。
(1)MongoDB的文档,相当于关系向数据库的一行记录;
(2)多个文档组成一个集合,相当于关系数据库的表;
(3)多个集合,逻辑上组织在一起,就是数据库;
(4)一个MongoDB实例支持多个数据库。
四、数据类型
基本数据类型:
null:用于表示空值或者不存在的字段,{"x":null}
布尔型:布尔类型有两个值true和false,{"x":false}
数值:shell默认使用64位 浮点型数值。{"x":3.14}或者{"x":3}
对于整型值,可以使用NumberInt(4字节符号证书)或NumberLong(8字节符号整数)
{"x":NumberInt("3")},{"x":numberLong("3")}
字符串:UTF-8字符串都可以表示为字符串类型的数据,{"x":“呵呵”}
日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{"x":new Date()}
正则表达式:查询时,使用正则表达式作为限定条件,语法与JS的正则表达式相同,{"x":/[abc]/}
数组:数据列表或者数据集可以表示为数组,{"x":["a","b","c"]}
内嵌文档:文档可以内嵌其他文档,被嵌套的文档作为值来处理,{"x":{"y":3}}
对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{"x":objectId()}
二进制数据:二进制数据是一个任意字节的字符串。他不能直接在shell中使用。如果要将非utf8字符保存到数据库中,二进制数据是唯一的方式。
代码:查询和文档中可以包括任何JS代码,{"x":function(){/..../}}