您的位置:首页 > 其它

分布式存储

2016-04-03 15:49 204 查看
单台计算机的存储和硬件是有限制的,可以利用多台机器的硬盘来存储数据,可以利用多台计算机的cpu或其他的一些硬件资源去读写数据,这样就可以提升一些性能。



分片分布式存储:
分片是指将数据才分,将其分散存储在不同的机器上的过程。有事也用分区来表示这个概念。将数据分散到不同的机器上,不需要概念强大的大型计算机可以存储更多的数据,处理更多的负载。
MongoDB分片的基本思想就是将集合拆分成小块,这些小块分散在若干片里面,内个片负责总数据的一部分,应用程序不必知道那片对于那些数据,甚至不需要知道数据已经被拆分,所以在分片之前要运行一个路由进程,该进程名是mongos,这个路由器知道所有数据的存放位置,所有应用可以连接它正常发送请求,对应用来说,它仅知道连接了一个普通的mongod。路由器知道数据和片的对应关系,能够转发请求到正确的片上。如果请求有了回应,路由器将其收集起来会送给应用。

在客户端连接mongos,并且初始化:
db.runCommand({"addshard":"ip1:4444",allowlocal:true}).{"shardAdded":"shard0000","ok":1}
db.runCommand({"addshard":"ip1:5555",allowlocal:true}).{"shardAdded":"shard0001","ok":1}

db.runCommand({"addshard":"ip1:6666",allowlocal:true}).{"shardAdded":"shard0002","ok":1}

allowlocal:true:可以直接连接到分片节点上来

开启数据库分片功能,命令很简单enablesharding()
db.runCommand({"enablesharding":" 数据库名称"});
指定片键,进行拆分:
db.runCommand({“shardcollection":"数据库名称.集合名称","key":{age:1}});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: