redis+mongodb简介

MongoDB
1、高负载性能,Mysql在存储达到一定程度的时候(单表几个G)会有明显的性能下降,但是MongoDB在高负载情况下依然有很好的性能
2、基于内存, 和redis一样是基于内存的非关系型数据库,因此速度很快。
3、索引数据结构采用B树。
4、文档型数据库,类似JSON对象,支持存储二进制数据和大型对象(比如照片)。内存不够时,非热点数据会放入磁盘
5、比起Mysql,数据的写入性能更好,而不是事务安全。Mysql适合存储高价值信息(银行、会计),因为有事务安全的保障,MongoDB适合存储大量的低价值信息,写入性能也更好。
6、高可用性,主从配置十分方便,可以快速响应单点故障。
7、自带mongos集群,自动分片水平拓展和路由,集群技术十分成熟。
使用场景:1、大量写入,低价值的信息
2、缓存
3、网站数据
4、JSON数据的存储、对象的存储。
不适合 事务性高的场景:银行、会计、以及需要sql的问题。

Redis
1、基于内存的高性能key-value数据库
2、单进程,单线程,使用队列技术把并发访问变为串行访问。redis是线程安全的,操作都是原子性的,不会因为并发而产生数据异常。
3、可以设置缓存过期时间,如果内存要满了,主要使用LRU算法来实施数据淘汰。 也可以通过快照、AOF来实现持久化。
4、支持多种数据结构:list(双向链表)、set、ordered set、hash、string、pub
5、和Mongodb一样支持简单快速的主从复制,读写分离。通过增加slave 数量,读的性能可以线性增加。master一般做双机热备。因此redis集群的读和写的可用性都很高。
6、持久化,快照和AOF,快照把所有数据写入磁盘,恢复速度快,但是因为快照的间隔可能会导致数据部分丢失。而AOF是把执行的命令存到硬盘,体积比快照大,但是数据的完整性好
7、和MongoDB一样sharding分片特性让水平拓展十分方便。
使用场景:1、session缓存 2、消息队列

你可能感兴趣的:(后端)