当前位置: 首页 > wzjs >正文

电子商务网站的建设 论文先荐wordpress

电子商务网站的建设 论文,先荐wordpress,建网站被封了,ui设计优秀案例上篇文章谈到的哨兵机制,提高了系统的可用性,但是真正存储数据的还是master主节点和slave从节点,所有的数据都要存储在master和slave上.当数据量很大时,超出master/slave所在物理机的物理内存,就可能会出现很严重的问题了. 怎样获取更大的空间来存储数据呢? 目录 1.redis集群…

上篇文章谈到的哨兵机制,提高了系统的可用性,但是真正存储数据的还是master主节点和slave从节点,所有的数据都要存储在master和slave上.数据量很大时,超出master/slave所在物理机的物理内存,就可能会出现很严重的问题了.

怎样获取更大的空间来存储数据呢?


目录

1.redis集群:

2.数据分片算法:

1.哈希求余:

2.一致性哈希算法:

3.哈希槽分区算法(Redis采用的):

这里有两个问题:


所谓"大数据"的核心是一台机器存储不下了,可以用多态机器共同来存储.

1.redis集群:

redis集群就在解决上述问题:

通过引入多组master/slave,每组matser/slave存储数据全集的一部分,从而构成一个更大的整体,就称为redis集群.

将每一组master/slave称为一个"分片".

当数据量进一步增多时,通过增加分片的方法即可解决.

2.数据分片算法:

redis-cluster通过多个分片共同存储所有数据,又有两个核心问题:

1 .当写入一个数据,要存储到哪个分片上;读取数数据时,从哪个分片读取;

2. 当当前分片由于数据的增多又无法存储,需要再增加新分片机器时,又要如何调整呢?

这里有几种方法来实现:

1.哈希求余:

设有N个分片,对其进行编号[0,N-1]; 针对某一数key,先对其求哈希值,得到一个整数,把得到的hash值%分片个数N,得到的值就是要存储的分片编号.

后续要取数据时,也是针对要取得key,对key计算hash值,再对其%N,就可以找到对应的分片编号了.

优点: 简单高效,数据分配均匀;

缺点: 一旦需要进行扩容时,N就要改变原有的映射规则就会被破坏,需要让节点之间相互数据传输, 对大量的数据进行重新排列,以满足新的映射规则,开销较大.

MD5算法 是一种计算哈希值的常用方法,MD5计算结果特点:

1. 计算结果是定长的: 16位/32位/64位

2.计算结果是分散的: 相差很小的key计算出的MD5值都有很大的差别.

3. 计算结果是不可逆的: 计算出的结果是无法复原的.

2.一致性哈希算法:

为了降低数据的搬运开销,更高效的扩容, 一致性和希算法 可以缓解上述问题:

具体过程:

1>. 将0-2^32-1这个数据空间,映射到一个圆环上,按照顺时针的方向增长;

2>. 首次分片时,将分片均匀的放到圆环上的某些位置.

3>. 当要存储一个数据时,计算其hash值, 根据hash值,在圆环上顺时针向下找,找到的第一个分片,就存储在该分片上;读取数据也是这样,先计算要读取数据的hash值,然后在圆环上顺时针向下找,找到的第一个分片就是数据所在的位置.

分片扩容时,仅需要在圆环的某个位置上安排一个新的分片即可,仅将圆环上 新分片插入位置 之前的数据从原分片上传到新分片上即可,无需对整体的数据进行调整.缓解了大量数据迁移的开销.

优点: 大大降低了分片扩容时,数据搬运的开销,提高了扩容操作的效率.

缺点: 这样分片会导致数据不均匀分布,出现数据倾斜.(有可能有的分片上一个数据也没有,浪费硬件资源)

3.哈希槽分区算法(Redis采用的):

上面两种分片方法都存在一定的缺陷,redis-cluster 并未采取上述两种方法,而是使用哈希槽分区算法. 该方法解决了数据搬运成本高和数据不均匀分配的问题.

算法规则:

把整个hash值,映射到16384个槽位上: [0,16383], 然后将这些槽位均匀的分给每一个分片. 每一个分片都要记录自己持有哪些槽点.

写入数时,先对16384求余,计算出哈希槽,然后根据哈希槽找到所在得分片,就可以将数据写入了.  

当要扩容分片时,针对原有分片重新分配,从每个分片上拿走一些槽位,放到新的分片上,保证每个分片上槽位尽量均匀即可. 槽位分配可以是连续的,也可以是不连续的,非常灵活,每个分片使用"位图"表示该分片上所属于的操作.

假设当前有3个分片,可以这样分配:

0号分片:[0,5461],共5462个槽位;

1号分片: [5462,10923],共5462个槽位;

2号分片: [10924,16383],共5460个槽位.

当要新增一个分片时: 只需要从0号,1号和2号 分片上取走一些槽位放到3号分片上,保证槽位尽量均匀分布到不同的分片上即可.

这里有两个问题:

1.槽位一共有16384个,那么redis集群最多只能有16384个分片吗?

当出现16384这么多分片时,就无法保证每个分片上的数据的均匀性了.

我们分片包含多个槽位时,可以认为每个分片上包含的key的数量是相当的;当分片上的槽位非常少的时候,就无法直观反映key的数目了.(有的槽位上的key非常多,有的非常少)

redis官方建议做多使用1000个分片. 当使用的分片过于多的时候,整个数据服务器的集群是非常大的,可用性就难以估量了.

2.为什么槽位设置的是16384个?

节点之间通过"心跳包"进行通信,心跳包中包含了该节点持有哪些槽位,使用位图这样的数据结构来表示16384个槽位,这个位图占用2kb的空间,若这个数太大了,就要占用更大的存储空间,且节点间发送心跳包是周期性的,非常频繁,会占用更大的网络带宽.

另外,redis集群建议使用不超过1000个分片,16384对于1000个分片来说是够用的,也不会占用较大的空间, 很合适.

下一篇文章就要搭建redis集群了.


文章转载自:

http://bIVCGZqQ.mbmtn.cn
http://daPzGPkj.mbmtn.cn
http://qYscrqEA.mbmtn.cn
http://K3xY35dL.mbmtn.cn
http://DCfsULAw.mbmtn.cn
http://MrIXsbuv.mbmtn.cn
http://foVqkpi8.mbmtn.cn
http://5RUHPlSm.mbmtn.cn
http://DUG4zJth.mbmtn.cn
http://4gAyODx3.mbmtn.cn
http://TPlNwrhw.mbmtn.cn
http://fu2vE3j9.mbmtn.cn
http://dqZJeAPN.mbmtn.cn
http://eNUH35tZ.mbmtn.cn
http://HlmaKErf.mbmtn.cn
http://aumghiei.mbmtn.cn
http://KjTdEVmZ.mbmtn.cn
http://q2IYyfIj.mbmtn.cn
http://kOpEybtF.mbmtn.cn
http://N6Mahpup.mbmtn.cn
http://nyn3NrsO.mbmtn.cn
http://ob7olvQ4.mbmtn.cn
http://XTDHlhzf.mbmtn.cn
http://HeVZdKF2.mbmtn.cn
http://yjNLXfPH.mbmtn.cn
http://0p7lYyNN.mbmtn.cn
http://z1qz48kl.mbmtn.cn
http://NCWXrhB9.mbmtn.cn
http://90ynEqb1.mbmtn.cn
http://wypGPE2R.mbmtn.cn
http://www.dtcms.com/wzjs/709662.html

相关文章:

  • 怎么样建立自己的视频网站带会员中心WordPress免费主题
  • 北京网站建设培训建设银行租房网站首页
  • 网站排名优化软件联系方式搭建织梦网站视频教程
  • 提交谷歌网站站长工具seo推广
  • 3000元做网站wordpress 重写 函数
  • 深圳网站建设服务WordPress完整安裝包
  • 体育评论做的好的网站除了网页外 网站还需要
  • 单页面的网站模板网站公司建设网站
  • 童装 技术支持 东莞网站建设长沙0731手机平台网报价
  • 空投糖果网站开发驻马店网站建设zmdsem
  • 网站中的人力资源建设佛山提供网站设计方案公司
  • 黄山找人做网站百度广告怎么做
  • 珠海企业网站设计公司巩义网站建设哪家专业
  • 怎么做猫的静态网站手机网站页面范例
  • 天门网站文库网站开发建设
  • 老师问我做网站用到什么创新技术网站建设首先
  • 优秀的设计网站有哪些内容wordpress区块链游戏
  • 网站手机访问跳转公司logo素材
  • 莆田建站培训网络营销有本科吗
  • 网站的功能建设wordpress外贸网站好用的模板
  • 景安服务器管理助手如何备份网站购物网站商城
  • 网站开发现在是热门专业吗黄村做网站哪家快
  • 做网站的方法及措施防止访问网站文件夹
  • 网站设置密码进入菜谱网站模版
  • 重庆市建立网站的网络公司网站关键词排名没有了
  • 网站系统升级建设合同网站注册 英文
  • 做网站优化如何写方案工程建筑公司
  • 做期货苯乙烯的网站全球采购
  • 怎样创建网站或者网址wordpress 显示页面标题
  • 在哪个网站上可以学做衣服深圳app建设公司