博客学习七——redis虚拟内存、mongodb分片

Redis是一个开源、支持网络、基于内存、键值对存储数据库,使用ANSI C编写。其开发由VMware主持。根据月度排行网站DB-Engines.com的数据显示,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值