MongoDB
1. 数据库:database---------------database
   数据库表/集合:collection------table
   数据库记录行/文档:document----row
   数据字段/域:field-------------column
   索引:index--------------------index
   主键:primary key--------------primary key
2. MongoDB不支持表连接
3. MongoDB自动将_id字段设置为主键
4. MongoDB和MySQL的区别
  一、
  1. 基于分布式文件存储
  2. 高负载情况下添加更多节点,可以保证服务器性能
  3. 将数据存储为一个文档
  二、比较
  1. 稳定性
  2. 索引,索引放在内存中,能够提升随机读写的性能。
  3. 占用的空间很大,因为它属于典型空间换时间原则的类型。
  4. MongoDB对数据间的事务关系支持比较弱。
  5. 运维不方便
  三、MongoDB的优势
  1. 适合那些对数据库具体数据格式不明确或者数据库数据格式
     经常变化的需求模型,而且对开发者十分友好。
  2. 自带一个分布式文件系统,可以很方便地部署到服务器机群上。
  3. 自带了对map-reduce运算框架的支持,这也很方便进行数据的
     统计。类似于group by。
5. (1)查所有
      db.getCollection('tableName').find().pretty();
   (2)$lt: <
      db.getCollection('tableName').find({"age":{$lt:"28"}});
   (3)$lte: <=
   (4)$gt: >
   (5)$gte: >=
   (6)$ne: != 
       db.getCollection('tableName').find({"age":{$ne:"28"}});
   (7)and
      ....find.({"hello":"world", "hello":"world"});
      select * from tableName where hello = "world" and hello = "world";
   (8)or
      ....find({$or:[{"hello":"world"}, {"hello":"world2"}]});
      ....find({"hello":"world", $or:[{"hello":"world2"}]});
      select * from tableName where hello = "world" or hello = "world2"
   (9)like

Docker
1. Docker将应用程序与该程序的依赖,打包在一个文件里。运行
   这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,
   就好像在真实的物理机上运行一样。有了Docker就不用担心环境问题。
2. Docker的接口相当简单,用户可以方便地创建和使用容器,把自己
   的应用放入容器。容器还可以进行版本管理、复制、分享、修改,
   就像管理普通的代码一样。
3. 用途
   1. 提供一次性的环境。比如,本地测试他人的软件、持续集成
      的时候提供单元测试和构建的环境。
   2. 提供弹性的云服务。因为Docker容器可以随开随关,很适合
      动态扩容和缩容。
   3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,
      因此在本机就可以模拟出微服务架构。
RESTful API:
1. REST是一组架构约束条件和原则。
2. RESTful API:符合REST的约束条件和原则的一个架构。
2. REST最明显的特点:面向资源。
   REST要求,必须通过统一的接口来对资源执行各种操作。对于每个资源
   只能执行一组有限的操作
   (7个HTTP方法:GET/POST/DELETE/PATCH/HEAD/OPTIONS)   
4. REST架构设计,遵循的各项标准和准则,就是HTTP协议的表现。
   HTTP协议就是属于REST架构的设计模式。比如无状态,请求-响应。

1. Postman: Chrome浏览器下,接口测试工具
2. Swagger: 写API接口文档的框架
3. Docker: 容器,可以把应用程序打包到一个文件, 提供一次性的环境。
4. MongoDB:数据库,类似MySQL,基于分布式文件存储

Redis
1. 字符串
   set key value  返回 ok
   get key  返回 value
   del key  返回1或0
   exists key  返回1或0
2. 哈希(hash)
   hmset hashkey111 value1 value2 value3  返回ok
   hgetall hashkey111  返回 value1 value2 value3