springboot整合mongdb那些事 |8月更文挑战

573 阅读2分钟

web应用开发数据是王道。关于存储数据方面目前主流的数据库大致分为两种 关系型数据库、非关系型数据库

数据库

关系型数据库

  • Mysql和Oracle是典型的关系型数据库 。 他们的设计理念都是讲不通模块的数据已表的形式进行存储。这样做的方式提高灵活性。再加上他们的索引可以实现数据的快速定位。

  • Mysql的InnoDB引擎更是我们使用最广泛的一种。基于红黑树实现的数据索引存储、行级锁、表级锁应对了web开发中的并发操作。

优点

  • 体积小、速度快 学习成本低 或者说是java入门必备知识

缺点

  • 不支持热备份(并不是不支持备份)
  • 数据结构有Mysql定义。不支持自定义的类型数据
  • 还有些缺点欢迎补充

非关系型数据库

  • 非关系型数据库第一反应应该是redis 。在平时开发场景中redis是使用最广泛的一种了。基于他我们可以实现数据缓存、订阅消费、分布式锁、分布式session共享。
  • redis和mongdb都是采用结构型数据存储的方式
  • MongDB更加侧重对大数据的存储分析。和Mysql一样可以做到数据的条件过滤等。而redis更加侧重的是数据的存储。整存整取

MongDB优势及使用场景

  • MongDB是有C++编写的。优点是高性能、易部署、存储方便、支持动态查询、支持索引
  • MongDB的使用场景:对数据封装的一个中间层。MongDB存储基本数据Json数据。封装各种的实体对象抛出使用

MongDB基础数据结构简介

SQL概念MongDB概念描述
databasesdatabase数据库
tablecollection数据库表/集合
rowdocument数据库行记录/文档
columnfield数据库列/字段
indexindex数据索引
table joins表连接/mongdb不支持文档之间的连接查询
primary keyprimary key主键/_id默认主键

Redis简介

  • redis是一种Key-Value型数据库。数据的存储都是基于内存的。所以速度上更加的速度。redis的值有很多种类型: 字符串、Map、List、Set、sorted set 。
  • 使用广泛的是String

优点

  • 读写快
  • AOF、RDB数据备份
  • 支持甬道操作
  • 支持集群

springboot整合

环境准备

  • docker pull mongo:latest安装最新版本mongdb
  • docker run -itd --name mymongo -p 27017:27017 mongo --auth 权限方式启动mongdb
  • docker exec -it mymongo mongo admin 进入mongo容器
  • db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]}); 创建用户密码

其他命令

  • db.system.users.find() 查看用户列表