返回顾黄亮的回答

顾黄亮顾黄亮  技术总监 , 苏宁消费金融有限公司
eagleweizhuhaiqiang赞同了此回答

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
浏览344

回答者

顾黄亮技术总监, 苏宁消费金融有限公司

回答状态

  • 发布时间:2019-09-16
  • 关注会员:2 人
  • 回答浏览:344
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30