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概念 | 描述 |
|---|---|---|
| databases | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据库行记录/文档 |
| column | field | 数据库列/字段 |
| index | index | 数据索引 |
| table joins | 表连接/mongdb不支持文档之间的连接查询 | |
| primary key | primary key | 主键/_id默认主键 |
Redis简介
- redis是一种Key-Value型数据库。数据的存储都是基于内存的。所以速度上更加的速度。redis的值有很多种类型: 字符串、Map、List、Set、sorted set 。
- 使用广泛的是String
优点
- 读写快
- AOF、RDB数据备份
- 支持甬道操作
- 支持集群
springboot整合
环境准备
docker pull mongo:latest安装最新版本mongdbdocker run -itd --name mymongo -p 27017:27017 mongo --auth权限方式启动mongdbdocker exec -it mymongo mongo admin进入mongo容器db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});创建用户密码
其他命令
db.system.users.find()查看用户列表