MongoDB服务器环境基本配置
自定义MongoDB中的数据文件路径和日志文件路径
mongod --dbpath=/usr/local/data/program/mymongodb/data --
logpath=/usr/local/data/program/mymongodb/log/mongodb.log
后台运行:
mongod --dbpath=/usr/local/data/program/mymongodb/data --
logpath=/usr/local/data/program/mymongodb/log/mongodb.log --fork
查看MongoDB进程:
ps -ef|grep mongod
ps -aux|grep mongod
杀死所有MongoDB进程:
killall mongod
根据配置文件启动mongodb:
- 创建配置文件mongodb.cfg,内容如下:
dbpath=/usr/local/data/program/mymongodb/data logpath=/usr/local/data/program/mymongodb/log/mongodb.log fork=true logappend=true bind_ip=0.0.0.0
- 根据命令启动,mongod -f /usr/local/data/program/mymongodb/mongodb.cfg
MongoDB命令怎么学?
mongodb学习方法:
- 看官网文档
- Linux命令下可以多使用help命令
有些人,自认为很聪明,他就会去猜(就会按自己的习惯去猜,用自己已知的领域去猜一个陌生的领域,类比法)
show databases
use testdb //使用数据库
db.member.insert({name:“ai”,age:23,addr:“上海市闵行区”}) //插入语句
for(var i=18;i<60;i++){db.t_member.insert({name:“ai”,age:i,addr:“上海市闵行区”})} //批量新增
db.t_member.drop() //删表
db.member.find() //查询
直接drop(),就这样没有了,不靠谱
定位:缓存而已(数据的价值不高,如果把安全性非常高的数据存入,不靠谱 )
如何使用Java调用API服务?
- 官网驱动文档地址:
https://docs.mongodb.com/ecosystem/drivers/
http://mongodb.github.io/mongo-java-driver/3.9/driver/getting-started/quick-start/
总结
- 有事没事,看第一手文档,官方文档
- 当你走投无路的时候记得用help(救命)命令
- 要认为自己聪明,锻炼猜的能力,猜出个80%左右
1、怎么配置mongdb在centos启动时就默认启动?
利用网络资源(关键是思路)
2、mongdb坑
用户行为数据,数据量非常大
有一种后悔的感觉,想着更换平台
迁移会遇到一些问题
不要滥用,不要滥用,不要滥用
它是一个最像关系型数据库的非关系型数据库(给数据操作带来便利)
3、MongoDB和ES对比
elasticSearch 纯粹是json(字符串)
mongo的优势是哪些?
BSON GirdFS(复杂)
4、用户手机注册验证码存取适合用mongo吗?还是redis?
可以用mongo,但是更建议用session,用一次就没了,没必要存持久化里面
redis也行,设置过时时间
5、MongoDB应用场景
mongodb可以存系统日志
什么情况下适合mongo:不规则日志:ELK ,Log4J INFO,ERROR,WARN,DEBUG(字符串)
Pattern, 用正则去解析字符串,不止一个正则,
每一种日志格式都要编写一个正则去匹配
既然用正则麻烦,为什么还用ELK存储日志
你的系统已经平稳运行N年了(.Net,PHP,Java)
只能在外围加一层,让它把日志格式变成一个结构化的数据,所以采用ELK分析
不适合MongoDB:
规则日志、结构化的整理、用户行为日志:operationTime creator type target Timeline、调用链路 invoker Time targetMethod args returnVal throw、持续增量(id+updatTime)、文件存储:GirdFS(文件存储系统)
不适合Redis:数据需要持久性的而且有一定的依赖性
适合Redis,数据会设置时效、分布式锁、用户登录token、数据库的缓存中间件
6、讲讲MongoDB(GridFS)、Hadoop、HBase对于数据存储的使用场景选择吗
定位:MongoDB,为一个结构化的缓存,由于设计原理不同,数据量是有一定的瓶颈的,MongoDB 顶多算一个日志数据库,文件存储系统
HBase,基于列簇扩展性,高可用程度会更加灵活,数量级和MongoDB也是有很大差异的,HBase 通常会跟大数据联系在一起
7、Mongo怎么持久化的?
持久化都是用文件的形式存储,其实任何数据库都是用文件实现持久化的