数码的并发性特别高,mongodb是文书档案式的存放

MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。

简介

Redis是一个开源的使用ANSI
C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
其中,值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets)
和有序集合(sorted sets)等类型。
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。

所以总结一下,MongoDB
的适用场景为:数据不是特别重要(例如通知,推送这些),数据表结构变化较为频繁,数据量特别大,数据的并发性特别高,数据结构比较特别(例如地图的位置坐标),这些情况下用
MongoDB , 其他情况就还是用 MySQL
,这样组合使用就可以达到最大的效率。

Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

redis和mongodb对比
  1. 简介
    mongoDb解决了mysql大数据量下效率下降的问题,但是在复杂查询及事务处理这块也相对弱了很多。redis相对MongoDb而言,提供了更好的内存级存取数据及主从读写分离,效率更高。
    MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

  2. 内存管理机制
    Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。
    MongoDB数据存在内存,由Linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

  3. 支持的数据结构
    Redis支持的数据结构丰富,包括hash、set、list等。
    MongoDB数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

  4. 性能
    redis性能优于mogodb,但二者性能都比较高,应该说都不会是瓶颈。
    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。业务软件往主服务器写数据,通过从服务器读数据,读写分离,相比mongoDb性能也更高。
    mongoDb则

  5. 可靠性
    二者均支持持久化。

  6. 集群
    MongoDB集群技术比较成熟,Redis从3.0开始支持集群。MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

  7. 不适用场景
    Ø 需要使用复杂sql的操作
    Ø 事务性系统

  8. 使用便捷性
    redis是主要把数据存储在内存中(当然可以把其存储至硬盘上,这也是写shell的必要条件之一),其“缓存”的性质远大于其“数据存储”的性质,其中数据的正删改查也只是像变量操作一样简单。而mongodb却是一个“存储数据”的系统,增删改查数据的时候有“与或非”条件,查询数据的方式也能像SQL数据库一样灵活,这是redis所不具备的。

MongoDB和Redis区别

mongodb更吃内存,因为当mongo发现内存不够的时候,是以2的指数级别来申请内存的。所以一般都建议把mongodb单独放。

如何设计redis+mysql

  • 核心原理:
    保持数据库与redis的数据一致性。类似如下图:
![](https://upload-images.jianshu.io/upload_images/138606-09916f8d47de9ded.png)
  • 具体请查看:
    Redis和MySQL的结合方案
    建立一套MySQL及Redis搭建统一的KV存储服务
    蚂蜂窝一个朋友,他们公司是直接把sql这块封装了orm,在使用其orm进行写操作时候,同时把数据写到数据库及redis中,进行读操作时,则从redis中直接读取。

简介

MongoDB更类似Mysql,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。

Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

其实可以说redis更像缓存机制,cookie,也可以设定数据的过期时间,当然也可以永久存储。mongodb是文档式的存储。

应用场景

缓存
消息队列
Redis作者谈Redis应用场景
Redis 的 5
个常见使用场景
徐汉彬:Web系统大规模并发——电商秒杀与抢购
【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
PHP解决抢购、秒杀
【高并发简单解决方案】redis队列缓存 + mysql 批量入库 +
php离线整合
利用redis +
lua解决抢红包高并发的问题
秒杀系统架构优化思路&version=12020110&nettype=WIFI&fontScale=100&pass_ticket=FYNx8SGg%2BjLiBqKjnrvtQj8D276fbJG1NN1oW2Mpq1%2FE0Z5Ir58MRBsTvSbRXLYy)

内存管理机制

Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。

MongoDB数据存在内存,由linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

内存管理机制:

支持的数据结构

Redis支持的数据结构丰富,包括hash、set、list等。

MongoDB数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。

性能

二者性能都比较高,应该说都不会是瓶颈。

MongoDB和mysql一样,只是把索引文件放到内存中。由linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

可靠性

二者均支持持久化。

支持的数据结构:

集群

         MongoDB集群技术比较成熟,Redis从3.0开始支持集群。

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图