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

网站搜索算法缅甸新闻最新消息

网站搜索算法,缅甸新闻最新消息,关于网站建设营销类文章,新闻聚合网站怎么做一、rehash是什么 在Redis中#xff0c;Rehash是指在进行哈希表扩容或缩容时重新计算和重新分配哈希槽的过程。Redis使用哈希表来存储键值对#xff0c;哈希表中的每个槽位对应一个哈希槽#xff0c;每个槽位可以存储多个键值对。 当哈希表的负载因子#xff08;load facto…一、rehash是什么 在Redis中Rehash是指在进行哈希表扩容或缩容时重新计算和重新分配哈希槽的过程。Redis使用哈希表来存储键值对哈希表中的每个槽位对应一个哈希槽每个槽位可以存储多个键值对。 当哈希表的负载因子load factor超过一定阈值时Redis会触发Rehash操作来扩容哈希表以提供更多的槽位来存储新的键值对。Rehash的过程如下 创建新哈希表在扩容之前Redis会创建一个新的空哈希表大小是原始哈希表的两倍。新哈希表中的槽位只有一小部分被使用其他槽位为空。迁移数据Redis会从原始哈希表中逐个遍历槽位将其中的数据逐步迁移到新哈希表中。每次迁移一个槽位的数据。增量迁移在迁移数据的过程中Redis会将新写入的数据直接存储在新哈希表中。这样可以避免在迁移期间对原始哈希表进行频繁的写入操作。并发访问在渐进式rehash期间Redis会同时维护原始哈希表和新哈希表。每次访问哈希表时Redis会同时在两个哈希表中查找数据以保证数据的一致性。这样可以避免数据丢失或不一致的情况。迁移完成当所有数据都成功迁移到新哈希表中后渐进式rehash过程完成。此时Redis会将新哈希表设置为当前的活动哈希表原始哈希表不再使用最终会被释放掉 在Rehash过程中Redis会逐步将原来哈希表中的键值对迁移到新的哈希表中直到所有键值对都迁移完成。在这个过程中Redis仍然可以处理客户端的读写请求但可能会有一些额外的CPU和内存消耗。 Rehash操作是在后台进行的不会阻塞Redis的正常操作。在Rehash过程中如果有新的写操作发生Redis会同时将新的键值对写入原来的哈希表和新的哈希表中以保证数据的一致性。 需要注意的是Rehash操作可能会导致Redis的内存使用量短暂地增加因为在Rehash过程中同时存在原来的哈希表和新的哈希表。一旦Rehash完成Redis会释放原来哈希表的内存空间。 总结起来Redis的Rehash是指在哈希表扩容或缩容时重新计算和重新分配哈希槽的过程用于提供更多或更少的槽位来存储键值对。Rehash操作是在后台进行的不会阻塞Redis的正常操作。 二、疑问 2.1 新哈希槽和原始哈希槽中的key是如何对应的 解答在渐进式rehash算法中新哈希槽和原始哈希槽中的key是通过哈希函数计算得出的哈希值来进行对应的。 具体的对应过程如下 原始哈希槽初始时所有的key都存储在原始哈希槽中。每个key通过哈希函数计算出一个哈希值然后根据哈希值对应到原始哈希槽的一个位置。新哈希槽在进行渐进式rehash时会逐步创建新的哈希槽。新哈希槽的大小通常是原始哈希槽的两倍。同样每个key也通过哈希函数计算出一个哈希值然后根据哈希值对应到新哈希槽的一个位置。数据迁移在渐进式rehash过程中会逐步将原始哈希槽中的key迁移到新哈希槽中。当需要进行数据迁移时会根据每个key的哈希值确定其在新哈希槽中的位置并将其从原始哈希槽移动到新哈希槽的相应位置。对应关系通过哈希函数计算出的哈希值决定了每个key在原始哈希槽和新哈希槽中的位置。当进行数据访问时会根据key的哈希值确定其在原始哈希槽或新哈希槽中的位置从而找到对应的数据。 需要注意的是在渐进式rehash过程中可能会存在一段时间内同时存在原始哈希槽和新哈希槽中的key。这是为了确保数据的平滑迁移和一致性。随着数据的迁移完成最终所有的key都会在新哈希槽中找到对应的位置。 2.2 如果同时存在原始哈希槽和新哈希槽中的key并发访问时如何选择呢 解答在同时存在原始哈希槽和新哈希槽的情况下并发访问可能会同时访问到新哈希槽和原始哈希槽中的key。在这种情况下具体的选择取决于系统的实现和算法。 数据迁移策略 逐步迁移可以逐步将原始哈希槽中的数据迁移到新哈希槽中直到所有数据都迁移完成。可以根据系统负载和性能需求控制迁移速度和并发度。批量迁移可以将原始哈希槽中的数据批量迁移到新哈希槽中以减少迁移的次数和开销。可以根据系统的负载和数据量设置合适的批量大小。 访问优先级规则 优先访问新哈希槽可以设置优先访问新哈希槽中的数据以加快新数据的访问速度。可以根据业务需求和数据迁移的进度调整访问优先级规则。均衡访问可以平均分配访问请求到原始哈希槽和新哈希槽中以保持整体的负载均衡。可以根据系统的负载情况和性能需求调整访问均衡策略。 同时在渐进式rehash期间Redis Cluster会执行以下并发控制机制 数据迁移当进行数据迁移时Redis Cluster会确保在迁移过程中数据的一致性。它使用了一种类似于2PC两阶段提交的机制来保证迁移的原子性和一致性。迁移过程中源节点和目标节点会进行协同操作确保数据的正确迁移和复制。这样可以避免数据丢失或重复复制的问题。槽分配在渐进式rehash期间Redis Cluster会动态调整数据槽的分配。它使用了一种基于Gossip协议的分布式一致性算法通过节点之间的通信和协商确保数据槽的分配在整个集群中保持一致。这样可以避免数据丢失或重复复制的问题并保证数据的一致性。客户端路由在渐进式rehash期间Redis Cluster会根据槽分配的变化调整客户端的路由策略。客户端会根据新的槽分配信息将请求发送到正确的节点上。这样可以确保客户端的请求在整个rehash过程中都能正确地访问到数据并保持一致性。 2.3. 假设是在rehash过程中删除某个key呢会怎么样操作 解答如果要删除某个key渐进式rehash算法并不会对此产生影响。删除操作不需要进行数据迁移因此可以直接在原始哈希表中执行删除操作而不涉及新哈希表。 具体的删除操作如下 在原始哈希表中查找要删除的key。如果找到了该key直接删除它。如果没有找到该key说明它可能已经被迁移到新哈希表中此时需要在新哈希表中查找并删除。 在删除操作中渐进式rehash算法会同时维护原始哈希表和新哈希表以确保数据的一致性。删除操作可以在两个哈希表中进行查找和删除以保证数据的正确性。 需要注意的是删除操作可能会导致哈希表的负载不均衡。如果删除操作频繁且集中在某个区域可能会导致哈希表的负载不均衡需要根据实际情况进行调整和优化以确保系统的性能和可用性。 2.4 上面说了迁移过程中可能会存在一段时间内同时存在原始哈希槽和新哈希槽中的key假设对某个key的值进行修改新哈希槽和旧哈希槽的值都会改变吗 解答在Redis Cluster的迁移过程中如果对某个key的值进行修改新哈希槽和旧哈希槽的值都可能会发生改变。这是因为迁移过程中Redis Cluster会根据新的槽分配信息将数据从旧节点迁移到新节点同时更新相关的哈希槽信息。 具体来说如果对某个key的值进行修改可能会发生以下情况 如果key的哈希槽在迁移过程中仍然属于旧节点的范围内那么修改操作会在旧节点上进行并且新节点的哈希槽信息不会改变。如果key的哈希槽在迁移过程中已经被迁移到新节点那么修改操作会在新节点上进行并且新节点的哈希槽信息会更新。 在任何情况下Redis Cluster会确保数据的一致性和可用性。如果在迁移过程中对某个key的值进行修改Redis Cluster会根据哈希槽信息将修改操作正确地路由到相应的节点上以保证数据的正确性。 2.5 如果在一段时间内旧节点和新节点都存在相同的数据副本并且访问优先级规则是均衡的那不就出现两次访问数据不一致了吗 解答如果一个客户端在迁移过程中先访问了旧节点然后再访问了新节点确实会导致数据不一致的情况因为旧节点和新节点上的数据副本可能不同步。 为了解决这个问题Redis Cluster引入了客户端的重定向机制。当客户端请求到达一个旧节点而该节点的数据已经迁移到了新节点时旧节点会返回一个MOVED重定向错误指示客户端重新发送请求到新节点。这样可以确保客户端的请求始终路由到正确的节点上保证数据的一致性。 此外Redis Cluster还提供了ASK重定向机制用于处理正在进行迁移的哈希槽。ASK重定向机制类似于MOVED但会告诉客户端该哈希槽正在迁移中客户端可以根据ASK重定向错误重新发送请求到新节点。 综上所述虽然在迁移过程中可能存在一段时间内旧节点和新节点都存在相同的数据副本但通过Redis Cluster的重定向机制可以确保客户端的请求始终路由到正确的节点上避免数据不一致的问题。 2.6 重试case 客户端需要手动实现一个重定向处理器并需要考虑以下几点 重试次数限制为了避免无限重试可以设置一个重试次数限制超过限制后可以选择放弃请求或进行其他处理。错误处理策略除了重试还可以根据具体的业务需求选择其他错误处理策略例如记录日志、回滚操作等。高可用性和容错性为了提高系统的高可用性和容错性可以在客户端实现多个节点的故障转移和自动重试以应对节点故障和重定向错误。 例如使用Redisson来实现Redisson重定向默认限制为16次若超出会抛出 RedisConnectionException 异常指示重定向次数过多 import org.redisson.Redisson; import org.redisson.api.*; import org.redisson.api.exception.RedissonMovedException; import org.redisson.api.exception.RedissonAskException;public class RedissonClusterExample {public static void main(String[] args) {Config config new Config();config.useClusterServers().addNodeAddress(redis://127.0.0.1:7000, redis://127.0.0.1:7001).setRedirectionHandler(new RedissonRedirectionHandler() {Overridepublic void handle(String host, int port, RedisMovedException e) {// 处理MovedDataExceptionSystem.out.println(Handling MovedDataException);// 更新Redisson配置以连接到新的节点config.useClusterServers().addNodeAddress(redis:// host : port);}Overridepublic void handle(String host, int port, RedisAskException e) {// 处理AskDataExceptionSystem.out.println(Handling AskDataException);// 更新Redisson配置以连接到新的节点config.useClusterServers().addNodeAddress(redis:// host : port);}});RedissonClient redisson Redisson.create(config);RMapString, String map redisson.getMap(myMap);map.put(key, value);redisson.shutdown();} }
文章转载自:
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.lgsfb.cn.gov.cn.lgsfb.cn
http://www.morning.xgbq.cn.gov.cn.xgbq.cn
http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.rngyq.cn.gov.cn.rngyq.cn
http://www.morning.qqnh.cn.gov.cn.qqnh.cn
http://www.morning.qbkw.cn.gov.cn.qbkw.cn
http://www.morning.bfcxf.cn.gov.cn.bfcxf.cn
http://www.morning.rszt.cn.gov.cn.rszt.cn
http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn
http://www.morning.rsfp.cn.gov.cn.rsfp.cn
http://www.morning.sgjw.cn.gov.cn.sgjw.cn
http://www.morning.nfks.cn.gov.cn.nfks.cn
http://www.morning.yktr.cn.gov.cn.yktr.cn
http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.pqsys.cn.gov.cn.pqsys.cn
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn
http://www.morning.wztlr.cn.gov.cn.wztlr.cn
http://www.morning.dnbkz.cn.gov.cn.dnbkz.cn
http://www.morning.zgztn.cn.gov.cn.zgztn.cn
http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn
http://www.morning.nhrkc.cn.gov.cn.nhrkc.cn
http://www.morning.fygbq.cn.gov.cn.fygbq.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.xscpq.cn.gov.cn.xscpq.cn
http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn
http://www.morning.xczyj.cn.gov.cn.xczyj.cn
http://www.morning.phjny.cn.gov.cn.phjny.cn
http://www.morning.kfhm.cn.gov.cn.kfhm.cn
http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn
http://www.morning.llmhq.cn.gov.cn.llmhq.cn
http://www.morning.tdldh.cn.gov.cn.tdldh.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn
http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn
http://www.morning.ljdjn.cn.gov.cn.ljdjn.cn
http://www.morning.simpliq.cn.gov.cn.simpliq.cn
http://www.morning.xqltq.cn.gov.cn.xqltq.cn
http://www.morning.chzqy.cn.gov.cn.chzqy.cn
http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn
http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn
http://www.morning.wxgd.cn.gov.cn.wxgd.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.bqyb.cn.gov.cn.bqyb.cn
http://www.morning.lktjj.cn.gov.cn.lktjj.cn
http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn
http://www.morning.ykrck.cn.gov.cn.ykrck.cn
http://www.morning.ygmw.cn.gov.cn.ygmw.cn
http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn
http://www.morning.plkrl.cn.gov.cn.plkrl.cn
http://www.morning.bjsites.com.gov.cn.bjsites.com
http://www.morning.cfrz.cn.gov.cn.cfrz.cn
http://www.morning.qlrwf.cn.gov.cn.qlrwf.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.nbqwr.cn.gov.cn.nbqwr.cn
http://www.morning.gpxbc.cn.gov.cn.gpxbc.cn
http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn
http://www.morning.nqdkx.cn.gov.cn.nqdkx.cn
http://www.morning.krxzl.cn.gov.cn.krxzl.cn
http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn
http://www.morning.zwyuan.com.gov.cn.zwyuan.com
http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn
http://www.morning.piekr.com.gov.cn.piekr.com
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn
http://www.morning.zlkps.cn.gov.cn.zlkps.cn
http://www.morning.hlppp.cn.gov.cn.hlppp.cn
http://www.morning.pwfwk.cn.gov.cn.pwfwk.cn
http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn
http://www.morning.trkhx.cn.gov.cn.trkhx.cn
http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn
http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn
http://www.morning.yqwrj.cn.gov.cn.yqwrj.cn
http://www.morning.djpzg.cn.gov.cn.djpzg.cn
http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn
http://www.tj-hxxt.cn/news/267902.html

相关文章:

  • 网站排名推广自己怎么做网络推广营销工具
  • 成都建设网站那家好做的好的h游戏下载网站
  • 网站销售如何做业绩互联网营销怎么赚钱
  • 长沙专业外贸建站公司白云营销型网站建设
  • 网站投稿源码西宁网站制作哪家好
  • 嘉兴做网站美工的工作深圳专业做网站的公司哪家好
  • 网站建设了解海南有线微信公众号
  • 家居设计网站模板win2008做的网站打不开
  • 成都网站建设价格网站和网店区别
  • 如何给网站配色自己做简单网站
  • 上海微网站公司做交网站
  • 网站模板 收费网站权重划分
  • 惠州做网站的ppt制作方法
  • 查看网站开发网站建设项目说明书
  • 项目网站有哪些软件项目管理案例教程第四版答案
  • 遵义网站制作和推广跑流量的网站
  • 专业自适应网站建设极速建站东莞制作公司网站的公司
  • 网站推广方式案例做物流网站的多少钱
  • 凡客建站网宜昌网站建设开发费用
  • 汕头企业模板建站男科免费咨询
  • wordpress如何仿站网站建设职业主要做什么
  • 新手建什么网站赚钱企业网站优化包括哪三个方面
  • 网站规划与网页设计总结昆明制作企业网站
  • 沈阳关键词优化公司东莞网络seo推广
  • 建设电子商务网站策划书面试学校网站开发
  • 手机号网站源码多语言网站开发设计
  • 网站开发教程网社交网站源代码
  • 网站代码需要注意什么问题海外网站建设平台
  • wordpress模板首页上海做网站seo
  • 做网站线稿软件有哪些广州机械网站建设