elasticsearch、redis、mysql、mongodb这四种分布式数据库的优缺点和应用选择注意点分别是什么?

参与5

1同行回答

顾黄亮顾黄亮  技术总监 , 畅销书作者
es优点:将你的文档分割到不同容器或者分片中,可以存在单个节点或多个节点复制每个分片提供数据备份,防止硬件问题导致数据丢失。对集群中任意节点的相互请求进行路由,保证获取的数据是你需要的,集群增加或者重新分配分片时,不停机让新节点恢复丢失的节点分片数据redis优点:1速度...显示全部

es优点:将你的文档分割到不同容器或者分片中,可以存在单个节点或多个节点
复制每个分片提供数据备份,防止硬件问题导致数据丢失。
对集群中任意节点的相互请求进行路由,保证获取的数据是你需要的,集群增加或者重新分配分片时,不停机让新节点恢复丢失的节点分片数据
redis优点:1速度快,因为数据存在内存中,类似于 HashMap , HashMap 的优势就是查找和操作的时间复杂度都是2支持丰富数据类型,支持 string , list , set , sorted set , hash3支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行4丰富的特性:可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除
mongo优点:1弱一致性(最终一致),更能保证用户的访问速度2 文档结构的存储方式,能够更便捷的获取数据3内置 GridFS ,支持大容量的存储4在使用场合下,千万级别的文档对象,近 10G 的数据,对有索引的 ID 的查询不会比 mysql 慢,而对非索引字段的查询,则是全面胜出 。

es缺点: 没有用户验证和权限控制,没有事务的概念,不支持回滚,误删不能恢复,需要 java 环境 .
redis缺点:1具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的 IP 才能恢复2主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后还会引入数据不一致的问题,降低了系统的可用性3主从复制采用全量复制,复制过程中主机会 fork 出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,对集群的服务能力会产生较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机间的一次全量的数据复制,这对实际的系统运营造成了不小的麻烦4Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费 。

收起
银行 · 2019-09-16
浏览2890

提问者

yuanhigher
系统运维工程师spotlight
擅长领域: 服务器系统运维Linux

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-09-16
  • 关注会员:2 人
  • 问题浏览:4182
  • 最近回答:2019-09-16
  • X社区推广