生产环境直接安装比较好,以及使用集群环境,本文仅测试交流使用,我用来写分布式im测试使用:
nami-im: 分布式im, 集群 zookeeper netty kafka nacos rpc主要为gate(长连接服务) logic (业务) lsb (负载均衡)store(存储)
1. mongodb特点:
- 支持存储海量数据;(例如:直播中的打赏数据);
- 支持频繁的数据读写;(例如:游戏道具);
- 数据安全性不高,存在数据误差(丢失数据);
- mongoDB不支持多表操作,不支持事务;
- mongoDB使用Bson存储格式,支持动态字段管理;
2. mongoDB与mysql、redis对比:
与redis对比:
1. redis纯内存数据库,内存不足时触发淘汰策略,mongoDB使用内存加磁盘的存储策略具有高扩展性;
2. mongoDB使用Bson存储格式,支持动态字段管理方便扩展;
与mysql对比
1. mongoDB不支持多表操作,不支持事务;
2. mongoDB使用Bson存储格式,支持动态字段管理;
查询效率对比
Redis > MongoDB > MySQL
3. github 地址:
GitHub - mongodb/mongo: The MongoDB Database
4. docker 下载mongo 4.4版本镜像:
docker pull mongo:4.4
5. docker命令安装:
# –auth:需要密码才能访问容器服务
docker run -itd --name mongo -v /docker/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth
6. 进入mongo 添加账号:
docker exec -it mongo mongo admin
7. 添加账号:
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
# 退出指令:
exit
8. 我安装的navicat for mysql 16 mongo db 不支持了。。。前面版本mongo db 也能用记得,用idea datagrip 测试的连接成功:
9. spring boot 配置mongo db
a. pom配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
b. yml配置:
spring
data:
# mongo 配置
mongodb:
uri: mongodb://192.168.164.146:27017/nami-im
username: root
password: 123456
authentication-database: admin
auto-index-creation: true
c. model类,mongotemplate 使用后续再更新