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

怎样建设的网站好优化好排名建设网络道德教育网站的有效措施

怎样建设的网站好优化好排名,建设网络道德教育网站的有效措施,微信导入wordpress,宁阳移动网站制作MOVED转向 1 ) 问题描述 在客户端操作Redis集群的时候 MOVED转向 或 MOVED错误是经常遇到的一类问题我们先连入集群:$ /usr/local/redis/bin/redis-cli -a 123456 -h 192.168.10.101 -p 6371之前在Redis中存储过一些数据,比如下面的情况,当输…

MOVED转向


1 ) 问题描述

  • 在客户端操作Redis集群的时候 MOVED转向 或 MOVED错误是经常遇到的一类问题
  • 我们先连入集群:$ /usr/local/redis/bin/redis-cli -a 123456 -h 192.168.10.101 -p 6371
  • 之前在Redis中存储过一些数据,比如下面的情况,当输入 $ get username, 会有
    (error) MOVED 14315 192.168.10.103:6375
    
    • 它提示 usrename 这个key的槽在 14315,槽在 103:6375节点
    • 这里它已经提示你key在哪里,但就是不给你
    • 这个涉及到 Redis 的一个官方规范

2 )Redis 规范

  • 这个规范是:
    • 一个 Redis 的客户端, 它向集群中的任意节点发送命令请求
    • 请求节点会对命令请求进行分析,如果该命令是集群可以执行的命令
    • 之后,对这个key做crc16的运算,对16384取余,最后得到一个值
    • 它会对这个key所在的槽进行查找,如果槽在当前节点,则可以顺利执行
    • 否则当前节点会给你返回一个 MOVED 错误
    • 这个 MOVED 错误会告诉你槽和对应的节点在哪里

3 )解决方案


3.1 解决方案 1

  • 让你的这个客户端使用集群的方式来连接就行了
  • $ /usr/local/redis/bin/redis-cli -c -a 123456 -h 192.168.10.101 -p 6371
    • 看到这里多了一个 -c
    • 它会帮助我们做 MOVED 转向
  • 这里使用的是 redis-cli, 另外,你的第三方的客户端, 比如一些可视化的客户端
  • 包括项目里的代码,也要以集群 cluster 的方式接入

3.2 解决方案 2

  • 如果你的客户端不支持集群
  • 但是在你连接你每次获取请求的时候,实际上会拿到这个槽和这个节点的信息
  • 把记录下来之后,再次有这个命令的时候,就可以寻找到正确的那个节点去执行命令
  • 最终集群处于一个稳定状态了,所有的客户端都会保存一个完整的哈希槽对应一个节点的映射记录,集群呢就非常高效了
  • 然后有命令过来,客户端就可以直接向正确的这个节点发送命令请求就无需转向等等的这些操作了
  • MOVED 转向是 Redis 官方规范要求,就是客户端必须要处理MOVED的错误
    • 要么就是以集群的方式连接, 交给那种第三方的东西帮你去做
    • 要么就是你自己去处理
  • 因为我们要实现对用户的一种透明
  • 总结下来
    • 就是保持 server 端,尽量简洁
    • 能不在server端做的事情就不在server端做
    • 降低 server端 的压力

ASK转向


1 ) 问题描述

  • 除了上面 MOVED 转向 和 Redis 的规范,还要求客户端必须也要实现对 ASK 转向的处理
  • 在进行节点与插槽管理的时候,比如添加一个主节点
    • 需要把其他节点的槽重新分配给了这个新的主节点
    • 在这个过程中,移动了很多的槽,槽在做迁移
    • 包括在删除主节点的时候,也是先把那些槽转移到可用的节点上
    • 就是先迁移过去,然后再删它
  • 就在上面这个过程中,如果你发了一个命令,你这个命令要处理的那个键
  • 恰好就属于正在被迁移的这个槽,这时候就会产生 ASK 转向
  • 原节点会在自己的数据里面去找你指定的这个键
  • 如果找到了,那就直接执行客户端发送的命令就返回了
  • 没找到,这个键有可能已经被迁移到目标的节点了, 原节点就会向客户端返回一个ASK错误
  • 指引客户端向正在导入槽的目标节点,再次发送之前要执行的命令
  • 在环境稳定的情况下,是不可能产生ask错误的
    • 因为 ASK 错误,是你的集群中有槽在迁移
    • 而且你请求的那个key 正好就是在迁移的那些槽中才会发生这个错误

2 ) 解决方案


2.1 解决方案1

  • 让你的客户端都使用集群的方式连接,它内部会帮你去做

2.2 解决方案2

  • 以正常的方式去登录,登录之后呢,它这个里边有一个 ASKING 的一个命令
  • 这个 ASKING 的命令是干嘛的呢?
    • 就是打开发送该命令客户端的一个Redis ASK 标识
    • 假设,现在有一些槽正在迁移,我请求的key就在迁移的那些槽中
    • 这个时候 Redis 会给我返回一个error,ask 告诉怎么做
    • 这时候,再敲一下 ASKING 看到这个OK之后
    • 再去获取,就能拿到了这个 key
  • 它的原理就是 ASKING 命令打开 Redis ASKING 的一个标识
  • 当你拿完以后,这个 ASKING 的标识也会被移除,它是一次性的
    • 也就是说你的这个槽在迁移的过程中,如果想要多次获取它
    • 每次获取都得通过 ASKING 获取

ASK 错误和 MOVED 错误的区别

1 ) 关于 MOVED 转向

  • MOVED 错误,它代表的这个槽的负责权已经从一个节点转到另一个节点了
  • 而且就是当节点需要让一个客户端长期的针对某个槽的命令请求发送至另一个节点
  • 节点就会向客户端返回 MOVED 转向
  • 使用了集群的方式登录客户端,这个问题就解决了

2 )关于 ASK 转向

  • ASK 转向只是两个节点在迁移过程中,就是槽迁移过程中使用的一种临时措施
  • 就是当节点需要让客户端仅仅只是在下一次命令请求转向另一个节点
  • 节点向客户户会返回 ASK 的一个转向, 要先发送一个 ASKING 的命令,才能够去请求
  • 否则的话会执行失败

3 )简单理解

  • MOVED 转向相当于告诉你这个槽在哪,你要自己去获取, 解决办法是以集群的方式连入,或者说自己去维护槽对应节点信息, 在每次命令之前自己去做处理判断,让他向正确的节点发送请求

  • ASK 转向是槽迁移的过程中产生的一种错误,它会给你返回 ASK error

  • 解决办法,也是你的客户端以集群的方式接入,它会自己帮你去处理

  • 否则的话,先发送一个 ASKING,然后再去获取,就能正常拿到

http://www.dtcms.com/wzjs/841927.html

相关文章:

  • 进入兔展网站做PPtwordpress网站app
  • 寿光企业建站流程怎么提高网站流量
  • 加强政务公开与网站建设房地产设计院
  • 师大暨大网站建设公司网页下载
  • 连云港网站备案在哪怎么和其它网站做友情链接
  • 网站建设毕业设计开题ppt网站栏目设置完整度建设
  • 食品网站架构网站建设的标准
  • 红色网站建设的作用和意义房产网站cms
  • 微信h5制作网站开发window wordpress搭建
  • 做网站公司-深圳信科静态网站是什么原因
  • 长春网站长春网络推广建设做网站上传服务器
  • 网站建设捌金手指花总八张楚岚
  • 网站建设软件开发企业 网站设计
  • 百度数据网站国外手表网站
  • 化妆品网站建设经济可行性分析aso搜索排名优化
  • 做公司的网站外发加工单表格范本
  • 海报素材库网站免费网站开发创建画布
  • 礼叮当 一家做创意礼品定制的网站开发公司名称起名大全
  • 钓鱼网站模板制作寻找网站建设 网站外包
  • 建站园怎么做网站备份
  • 企业顺德网站建设购物类网站模板
  • 如何在空白服务器上搭建网站网站ui设计用什么软件做
  • 英文网站的外部链接 建设网站推广策划方案大数据
  • 网站备案ip更换福步论坛外贸网
  • 常用的设计网站有哪些营销型网站主机
  • 友点企业网站管理系统模板桂林北站离阳朔多远
  • 做打鱼网站网站知识
  • 有哪些网站是可以做宣传的传媒公司名字大全
  • 做网站上加入模块怎么加入如何建立自己的网站商城
  • 江阴网站优化psd to wordpress