摘要:
现如今网上关于Java、前端、Android、Golang...等相关技术的学习资料、工作心得、面试指南一搜都是一大把,但是咱们C#/.NET的相关学习资料、工作心得、面试指南都是寥寥无几。我在微信技术群、知乎里面经常会看到这样的提问:有没有好的C#/.NET相关的学习书籍、视频教程、项目框架和常见 阅读全文
摘要:
选举过程: 当系统启动好之后,初始选举后系统由1个Leader和若干个Follower角色组成。然后突然由于某个异常原因,Leader服务出现了异常,导致Follower角色检测到和Leader的上次RPC更新时间超过给定阈值时间时。此时Follower会认为Leader服务已出现异常,然后它将会发 阅读全文
摘要:
聚合操作能够处理数据记录并返回计算结果。聚合操作能将多个文档中的值组合起来,对成组数据执行各种操作,返回单一的结果。它相当于 SQL 中的 count(*) 组合 group by。对于 MongoDB 中的聚合操作,应该使用 aggregate() 方法。 db.COLLECTION_NAME.a 阅读全文
摘要:
MongoDB 中的文档排序是通过 sort() 方法来实现的。 sort() 方法可以通过一些参数来指定要进行排序的字段,并使用 1 和 -1 来指定排序方式,其中 1 表示升序,而 -1 表示降序。 db.connectionName.find({key:value}).sort({column 阅读全文
摘要:
在 find() 方法中,如果传入多个键,并用逗号( , )分隔它们,那么 MongoDB 会把它看成是AND条件。 db.mycol.find({key1:value1, key2:value2}).pretty() 若基于OR条件来查询文档,可以使用关键字$or。 db.mycol.find( 阅读全文
摘要:
一共有四部分组成:时间戳、客户端ID、客户进程ID、三个字节的增量计数器。 _id是一个 12 字节长的十六进制数,它保证了每一个文档的唯一性。在插入文档时,需要提供_id。如果你不提供,那么 MongoDB 就会为每一文档提供一个唯一的 id。_id的头 4 个字节代表的是当前的时间戳,接着的后 阅读全文
摘要:
从目前阿里云 MongoDB 云数据库上的用户看,MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例。 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、 更新 物流场景, 阅读全文
摘要:
为开发便捷起见,我们建议以非集群分片(unsharded)方式开始一个 MongoDB 环境,除非一台服务器不足以存放你的初始数据集。从非集群分片升级到集群分片(sharding)是无缝的,所以在你的数据集还不是很大的时候没必要考虑集群分片(sharding)。 阅读全文
摘要:
GridFS是一种将大型文件存储在MongoDB中的文件规范。使用GridFS可以将大文件分隔成多个小文档存放,这样我们能够有效的保存大文档,而且解决了BSON对象有限制的问题。 阅读全文
摘要:
如果一个分片(shard)停止了,除非查询设置了“Partial”选项,否则查询会返回一个错误。如果一个分片(shard)响应很慢,MongoDB则会等待它的响应。 阅读全文
摘要:
MongoDB 分片是基于区域(range)的。所以一个集合(collection)中的所有的对象都被存放到一个块(chunk)中。只有当存在多余一个块的时候,才会有多个分片获取数据的选项。现在,每个默认块的大小是64Mb,所以你需要至少 64 Mb 空间才可以实施一个迁移。 阅读全文
摘要:
1、 Key-Value 存储 Eg:Amazon S3 2、图表 Eg:Neo4J 3、文档存储 Eg:MongoDB 4、基于列存储 Eg:Cassandra 阅读全文
摘要:
主节点(Primary) 接收所有的写请求,然后把修改同步到所有Secondary。一个Replica Set只能有一个Primary节点,当Primary挂掉后,其他Secondary或者Arbiter节点会重新选举出来一个主节点。默认读请求也是发到Primary节点处理的,可以通过修改客户端连接 阅读全文
摘要:
MongoDB没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能。可以把它类比成MySQL MylSAM的自动提交模式。通过精简对事务的支持,性能得到了提升,特别是在一个可能会穿过多个服务器的系统里。 阅读全文
摘要:
1)分片服务器(Shard Server) mongod 实例,用于存储实际的数据块,实际生产环境中一个 shard server 角色可由几台机器组个一个 relica set 承担,防止主机单点故障 这是一个独立普通的mongod进程,保存数据信息。可以是一个副本集也可以是单独的一台服务器。 2 阅读全文
摘要:
1)机器的磁盘不够用了。使用分片解决磁盘空间的问题。 2)单个mongod已经不能满足写数据的性能要求。通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。 3)想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。 阅读全文
摘要:
1、一个好的片键对分片至关重要。 片键必须是一个索引 ,通 过 sh.shardCollection 加会自动创建索引。一个自增的片键对写入和数据均匀分布就不是很好, 因为自增的片键总会在一个分片上写入,后续达到某个阀值可能会写到别的分片。但是按照片键查询会非常高效。随机片键对数据的均匀分布效果很好 阅读全文
摘要:
1)减少单机请求数,将单机负载,提高总负载 2)减少单机的存储空间,提高总存空间 阅读全文
摘要:
Sharding cluster是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建。sharding分片很好的解决了单台服务器磁盘空间、内存、cpu等硬件资源的限制问题,把数据水平拆分出去,降低单节点的访问压力。每个分片都是一个独立的数据库,所有的分片组合起来构成 阅读全文
摘要:
1、副本集中的主节点选举必须满足“大多数”的原则,所谓“大多数”是指副本中一半以上的成员。副本集中成员只有在得到大多数成员投票支持时,才能成为主节点。例如:有N个副本集成员节点,必须有N/2+1个成员投票支持某个节点,此节点才能成为主节点。注意:副本集中若有成员节点处于不可用状态,并不会影响副本集中 阅读全文