• 近期 整理的 关于Redis mongoDB memcache 对比


    Redis

    mongoDB

    memcache

    性能

    都比较高,性能对我们来说应该都不是瓶颈。

    操作的便利性

    稍微丰富一点,提供list,set, hash 等数据结构的存储

    最像关系型数据库,数据类型非常丰富

    memcache 数据结构单一。(key-value)

    内存大小和数据量大小

    Redis可以针对key-value设置过期时间,

    适合大数据量的存储,依赖操作系统 VM 做内存管理,吃内存也比较厉害,服务 不要和别的服务在一起。

    可以修改最大可用内存,采用 LRU 算法。Memcached 代理软件 magent,比如建立 10 台 4G 的 Memcache 集群,就相当于有了 40G。

    单点问题

    Redis依赖客户端实现分布式读写分离,主从复制时,每次从节点重新连接主节点的时候,都依赖整个快照,无增量复制,性能比较差。也不支持自动sharding,需要设置一定的hash机制。不过,有解决方案:不用redis本身的复制机制,采用自己做主动复制(多分储存),或者改成增量复制等方式

    mongoDB 牛逼很牛逼的使用master-slave,replicaset(内部采用 paxos 选举算法,自动故障恢复),auto sharding 机制,。对客户端屏蔽了故障转移和切分机制

    这个就不用担心了。本身就没有数据冗余机制。采用成熟的hash或者环状算法轻松搞定单点问题。

    可靠性(持久化)

    Redis支持快照·Aof技术。依赖快照对数据进行持久化操作。当然了,这对性能有点影响。

    采用binlog(二进制日志) 方式支持持久化的可靠性。

    不支持

    事务支持

    事务支持比较弱,只能保证事务中的每个操作连续执行

    mongoDB 不支持事务

    在并发场景下,用 cas 保证一致性

    应用场景

    数据量较小的更性能操作和运算上

    主要解决海量数据的访问效率问题。

    用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写
    少,对于数据量比较大,可以采用 sharding)

    人生匆匆几十年,BeYourself...
  • 相关阅读:
    题解 P3071 【[USACO13JAN]座位Seating】
    [luogu]P3398 仓鼠找sugar
    快速输入输出
    Luogu P3939 数颜色
    HEOI2016/TJOI2016 排序
    POI2011 DYN-Dynamite
    USACO17JAN Promotion Counting
    AHOI2008 聚会
    Luogu P4907 A换B problem
    网络流24题 骑士共存问题
  • 原文地址:https://www.cnblogs.com/huagege/p/6005019.html
Copyright © 2020-2023  润新知