zoukankan      html  css  js  c++  java
  • 常见的NoSQL数据库

    NoSQL数据库发展迅猛,据说现在已经有上百种NoSQL数据库了,下面来了解下常见的一些NoSQL数据库

    先来看张表,了解下典型的NoSQL数据库的分类

    临时性键值存储 永久性键值存储 面向文档的数据库 面向列的数据库
    Memcached Tokyo Tyrant MangoDB Cassandra
    Redis Flare CouchDB HBase
      ROMA   HyperTable
      Redis    

     

     

    Memcached

    • 挥发性(临时性)的键值存储
    • 一般作为关系型数据库的缓存来使用
    • 具有非常快的处理速度
    • 由于存在数据丢失的可能,所以一般用来处理不需要持久保存的数据
    • 用于需要使用expires时(需要定期清除数据)
    • 使用一致性散列(Consistent Hashing)算法来分散数据

    Tokyo Tyrant

    • 持久性的键值存储
    • 用来处理需要持久保存,高速处理的数据
    • 具有非常快的处理速度
    • 用于不需要定期清除的数据
    • 使用一致性散列(Consistent Hashing)算法来分散数据


    Redis

    • 兼具Memcached和Tokyo Tyrant优势的键值存储
    • 擅长处理数组类型的数据
    • 具有非常快的处理速度
    • 可以高速处理时间序列的数据,易于处理集合运算
    • 拥有很多可以进行原子操作的方法
    • 使用一致性散列(Consistent Hashing)算法来分散数据


    MongoDB

    • 面向无需定义表结构的文档数据
    • 具有非常快的处理速度
    • 通过BSON的形式可以保存和查询任何类型的数据
    • 无法进行JOIN处理,但是可以通过嵌入(embed)来实现同样的功能
    • 使用sharding(范围分割)算法来分散数据

    上面多次提到了一致性散列,那到底什么是一致性散列呢?请参考这里 ,我就不赘述了

    不过,当server数量很少时,很可能他们在圆周上的分布不是特别均匀,
    导致cache不能均匀分布到所有的server上。

    这时候,就该请出虚拟节点了
    为每个物理节点(服务器)在圆上分配100~200个点,

    这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布,

    用户数据映射在虚拟节点上,就表示用户数据真正存储位置是在该虚拟节点代表的实际物理服务器上。

  • 相关阅读:
    phpwind管理权限泄露漏洞
    CGI Hack与Webshell研究资料整理
    深入浅出net泛型编程[转载]
    加上checkbox的treeview控件源程序
    BCB消息消息机制
    开源ZPU介绍
    带复选框可以多选的组合框控件 TCheckCombobox,非常完美
    别人用delphi写的很简单实用的多列功能的treeview treelistview
    智能DVR视频监控系统,源代码
    delphi事件参数sender的用法例程
  • 原文地址:https://www.cnblogs.com/yejg1212/p/3584094.html
Copyright © 2011-2022 走看看