美文网首页
2019-01-22--第36天

2019-01-22--第36天

作者: 3171631ce5f1 | 来源:发表于2019-01-23 07:37 被阅读0次

    早晨挂科0--0

    大白:(O ^ ~ ^ O) 小同志,听说你今天早上没看书呀,
    我:( ′ ‸`) 嗯嗯
    大白:反手一个大嘴巴,来说说把(O ^ ~ ^ O) ,咋回事呢?
    我:昨天,没把握好时间,写作时间太长了,导致,早上睡不醒 +﹏+ 。
    大白:写的时间长,说明你好歹用心了。可这并不是睡懒觉的借口,要记住哦∩0∩
    我:(゜^*))嗯嗯

    20:30--22:12

    Redis Cluster 集群
    假设我们的数据库 每秒只能处理10万条数据,那如果现在业务需要每秒处理100万条数据该怎么办呢?
    假设我们的机器内存只有16-256G,那如果现在业务需要500G的内存空间该怎么办呢?

    这时候我们就需要用到分布式/集群的概念来解决问题。
    可以抽象的理解为,一台机器解决不了的问题,我们可以使用多台机器,一起解决 。 / 人多力量大么。
    在Redis Cluster 中,数据分布有两种实现方式:

    • 哈希分布:特点:数据分散度高,键值分布与业务无关无法顺序访问,支持批量操作
      典型产品:一致性哈希Memcache 、Redis Cluster其他缓存产品

    • 顺序分布:特点:数据分散度易倾斜,键值业务相关可顺序访问,不支持批量操作
      典型产品:Big Table HBase

    哈希分布又有三种实现方式:

    • 节点取余分区( hash(key)%nodes ):缺点是:如果要对节点扩容,那之前存储的数据中,超过80%的数据,都要做节点迁移。即使使用多倍扩容迁移量也高达50%。

    • 一致性哈希分区:客户端分片:哈希 + 顺时针(优化取余)
      在扩容处理中进行了优化,如图“一致性哈希-扩容”,在n1 和 n2扩容一个n5,只会影响n1 和 n2之间的数据,不会影响到其他人。
      需要注意的是:
      节点伸缩:影响临近节点,还是有数据迁移;
      翻倍伸缩:保证最小迁移数据和负载均衡。


      QQ截图20190122225915.png
    • 虚拟槽分区(重点):
      预设虚拟槽:每个槽映射一个数据子集,一般比节点数大
      良好的哈希函数:例如CRC16
      服务端管理节点、槽、数据:例如Redis Cluster


      QQ截图20190122230550.png

    在沉网中生活,不敢失去想飞的心,始终铭记飞翔的姿势

    相关文章

      网友评论

          本文标题:2019-01-22--第36天

          本文链接:https://www.haomeiwen.com/subject/pzqdjqtx.html