博客学习七——redis虚拟内存、mongodb分片
来源:互联网 发布:阿里云如何搭建ssr 编辑:程序博客网 时间:2024/06/06 15:46
Redis是一个开源、支持网络、基于内存、键值对存储数据库,使用ANSI C编写。其开发由VMware主持。根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库。
对于Redis这样的内存数据库,内存总是不够用的,除了可以将数据分割到多个Redis服务器以外,另外的能够提高数据库容量的办法就是使用虚拟内存技术把那些不常发那个吻的数据交换到磁盘上。
Redis自己在用户态实现自己的虚拟内存机制,原因:
1、操作系统的虚拟内存是以4k/页为最小单位进行交换的,但redis的大多数对象都远小于4k,所以一个操作系统页可能有多个redis对象
对于Redis这样的内存数据库,内存总是不够用的,除了可以将数据分割到多个Redis服务器以外,另外的能够提高数据库容量的办法就是使用虚拟内存技术把那些不常发那个吻的数据交换到磁盘上。
Redis自己在用户态实现自己的虚拟内存机制,原因:
1、操作系统的虚拟内存是以4k/页为最小单位进行交换的,但redis的大多数对象都远小于4k,所以一个操作系统页可能有多个redis对象
2、redis可以将被交换到磁盘的对象进行压缩,保存到磁盘的对象可以去除指针和对象元数据信息。redis的虚拟内存会比操作系统的虚拟内存少做很多IO操作
为何要分片:将数据拆分到不同机器上,不需要大型计算机就可以存储更多的数据,处理更大的负载
MongoDB支持自动分片:集群自动切分数据,做负载均衡
mongo:路由器,在分片之前运行,路由器知道所有数据存放位置,应用可以连接它来正常发送请求
什么时间开始分片:
1、机器的磁盘不够用了
2、单个mongod已经不能满足写数据的性能需要了
3、能将大量数据放在内存中提高性能
片键:设置分片时,从集合中选择一个键,用该键值作为数据拆分的依据
片键的选择决定了插入操作在片之间的分布
如果写入负载比较高,想均匀分散负载到各个片,就得选择分布均与的片键
片键是一种常用的索引
分片由三部分组成:
片:保存子集合数据的容器
mongos:各版本中都配的路由器进程
配置服务器:存储了集群的配置信息,即数据和片的对应关系
建立分片:
1、启动服务器:启动配置服务器和mongos,添加片
2、切分数据:
enablesharding:在数据库和集合的级别将分片功能打开
shardcollection:分片
生产配置:
健壮的配置:建立多个配置服务器
多个mongos:一个应用服务器只运行一个mongos进程
健壮的片:每个片都应是副本集:addshard:将副本集作为片添加:如果一个服务器挂掉,那么mongos会知道它连接的是一个副本集,就会使用新的主节点
0 0
- 博客学习七——redis虚拟内存、mongodb分片
- MongoDB——分片
- MongoDB——分片
- MongoDB— 分片技术
- MongoDB—分片技术
- mongodb—分片(sharding)
- MongoDB集群——分片
- MongoDB集群——分片
- MongoDB——分片技术
- 8天学习MongoDB——第六天 分片技术
- Redis之——虚拟内存
- Redis学习手册(虚拟内存)
- Redis学习手册(虚拟内存)
- JAVAWEB开发之redis学习(十三)——redis服务器的虚拟内存和内存优化
- MongoDB 分布式操作——分片操作
- MongoDB——第六天 分片技术
- MongoDB分布式操作——分片操作
- MongoDB分布式操作——分片操作
- Android共享数据ContentProvider的使用
- uva 12003 Array Transformer (块状数组)
- UVA 699 The Falling Leaves
- 将WCF中的事务传播到Com+组件
- cocos2d-x3.0实现2048游戏
- 博客学习七——redis虚拟内存、mongodb分片
- 杭电 1312 Red and black 搜索题
- 【记录】nginx 源代码
- PHP学习实例—2(简易图形计算器)
- 算法导论——lec 08 线性时间排序
- Graph的算法实现: 寻找一幅图的最小生成树(MST)
- 全栈JavaScript之路(十二)了解 Selector API
- mybatis
- K-means聚类算法