mongdb命令及java使用https://www.runoob.com/mongodb/mongodb-sort.html
redis与mongdb的对比:
redis与mongoDB的区别
- 内存管理
Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据(redis本质是内存数据库,内存大小决定了redis的可用空间,而2.0后支持virtual Memory(虚拟内存),但是本质上就是磁盘存储了,影响性能)。
MongoDB 数据会优先存于内存,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。
需要注意的是Redis 和mongoDB特别消耗内存,一般不建议将它们和别的服务部署在同一台服务器上。
- 数据结构
Redis 支持的数据结构丰富,包括hash、set、list等。
MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。
- 数据量和性能
当物理内存够用的时候,性能,redis>mongodb>mysql
数据量,mysql>mongodb>redis
注意mongodb可以存储文件,适合存放大量的小文件,内置了GirdFS 的分布式文件系统。
- 可靠性
mongodb从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性;
Redis依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能。
可靠性上MongoDB优于Redis。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysql&redis&mongdb的使用场景和优缺点:
MySQL使用场景以及优缺点
使用场景
1, 高度事务性的系统;
2, 重要数据, 关系性数据;
3, 需要sql语句的问题;
......
优点
1, 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
2, 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;
3, 为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;
4, 支持多线程,充分利用CPU资源;
5, 价格便宜:Mysql是开源的,所以不需要支付额外的费用;
6, MySQL使用标准的SQL数据语言形式
......
缺点
1, 比较难学;
2, MySQL也缺乏一些存储程序的功能;
3, 使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入;
4, 使用myisam配置,如果你不慎损坏数据库,结果可能会导致所有的数据丢失
......
redis使用场景和优缺点
使用场景
1, 取最新N个数据的操作
2, 排行榜应用, 取top N 操作
3, 需要精准设定过期时间的应用
4, 计数器应用
5, uniq 操作,获取某段时间所有数据排重值
6, pub/sub 构建实时消息系统
7, 构建队列系统
8, 缓存
优点
1 读写性能优异
2 支持数据持久化,支持AOF 和 RDB 两种持久化方式
3 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
4 数据结构丰富 有string,hash,set,sortedset,list
缺点
1 不具备自动容错和恢复功能
2 较难支持在线扩容
mongodb使用场景和优缺点
使用场景
1 网站数据
2 缓存
3 大尺寸,低价值的数据
4 高伸缩性的场景
5 用于对象及json数据的存储
6 一般数据存储
7 把mongodb当作MySQL的一个view,view是将表数据整合成业务数据的关键
优点
1 弱一致性,更能保证用户的访问速度
2 文档结构的存储方式,能够更便捷的获取数据
3 内置GridFS,高效存储二进制大对象
4 支持复制集,主备,互为主备,自动分片等特性
5 动态查询
6 全索引支持,扩展到内部对象和内嵌数组
缺点
1 不支持事务
2 占用空间过大
3 维护工具不够成熟
ssm配置mongdb: