• redis和mongodb以及memcache的优缺点


    Redis优势:

    • 速度快,存储在内存中,时间复杂度为O(1)

    • 支持丰富的数据类型:(string,list,set,sorted set,hash)支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)。

    • 支持事务,操作都是原子性.所谓原子性就是对数据的更改要么全成功要么全失败

    • 丰富的特性可用于缓存,消息,按key设置过期时间,过期后会自动删除

    • 支持持久化操作,可以进行aof及rdb数据持久化到硬盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。

    • 支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制

    缺点:

    • redis只能使用单线程,性能受限于cpu性能,

    • 支持简单的事务需求,不成熟,不支持回滚

    • redis在string类型上会小号较多内存,可以使用dict压缩存储以降低内存好用

    Memcached优势:

    • Memcached可以利用多核优势,单实例吞吐量极高,适用于最大程度扛量。

    • 支持直接配置为session handle。

    • Memecached把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小

    缺点:

    • 数据类型比较单一

    • 无法实现持久化,数据不能备份,只能用于缓存使用且重启后数据丢失

    • 无法进行数据通过不,

    • 需要注重value的设计

    MongDB优势:

    • MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活

    • 丰富的数据表达、索引;最类似于关系数据库,支持丰富的查询语言

    • 适合大数据量存储,依赖系统虚拟内存管理,采用镜像文件存储;内存占有率比较高

    • 支持master-slave,replicaset(内部采用paxos选举算法,自动故障恢复),auto sharding机制,对客户端屏蔽了故障转移和切分机制

    • 海量数据的访问效率提升<更高的写负载,MongoDB拥有更高的插入速度。

    • 模式自由 :可以把不同结构的文档存储在同一个数据库里

    • 面向集合的存储:适合存储 JSON风格文件的形式

    • 完整的索引支持:对任何属性可索引

    • 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移

    • 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器

    • 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组

    • 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划

    • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)

    缺点:

    • 不支持事务。

    • MongoDB占用空间过大 。

    • MongoDB没有成熟的维护工具。

  • 相关阅读:
    IfcSameDirection
    IfcSameCartesianPoint
    java多个文件合并为一个文件
    matlab pan_tompkin算法
    IfcSameAxis2Placement
    IfcOrthogonalComplement
    IfcNormalise
    IfcMakeArrayOfArray
    matlab 日期 年月日时分秒毫秒
    IfcListToArray
  • 原文地址:https://www.cnblogs.com/robot-python/p/11775164.html
Copyright © 2020-2023  润新知