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

山西网站建设推荐网站标题权重吗

山西网站建设推荐,网站标题权重吗,网站 设计 分辨率,wordpress 固定连接中文转换插件目录 为啥不用keys*遍历#xff1f; 引入渐进式遍历 SCAN进行渐进式遍历 格式及参数说明 使用示例 注意 为啥不用keys*遍历#xff1f; 之前学过key* 获取所有的key#xff0c;但是这个操作可能会一次性得到太多的key#xff0c;阻塞redis服务器#xff0c;所以不建议… 目录 为啥不用keys*遍历   引入渐进式遍历 SCAN进行渐进式遍历 格式及参数说明 使用示例  注意   为啥不用keys*遍历  之前学过key*  获取所有的key但是这个操作可能会一次性得到太多的key阻塞redis服务器所以不建议在生产环境中使用。 性能问题KEYS * 命令需要遍历整个数据库中的所有键名这对于大型的 Redis 数据库来说会非常耗时和资源消耗。 阻塞问题KEYS * 命令会阻塞 Redis 服务器的主线程这意味着在执行这个命令期间Redis 将无法处理其他客户端的请求。 安全问题如果在生产环境中误操作使用 KEYS * 命令可能会导致非常严重的安全问题。例如可能会返回包含敏感信息的键名或者删除一些重要的键值对 引入渐进式遍历 Redis渐进式遍历允许我们在不阻塞Redis服务器的情况下逐步获取大量的数据。所谓渐进式不是一次性把所有Key拿到而是每当执行一次命令只获取到其中的一部分多次迭代逐步获取。这样保证当前这一次操作不会太卡。多执行几次渐进式遍历就可以得到所有的key相当于化整为零。 SCAN进行渐进式遍历 在Redis中可以使用SCAN命令进行渐进式遍历。SCAN命令通过游标来记录当前遍历的位置并返回一批键值对。我们可以使用返回的游标继续下一次遍历直到完成遍历为止。 格式及参数说明 SCAN cursor [MATCH pattern] [COUNT count] [TYPE type] #pattern等同于key中的pattern通配符 #count限制这一次遍历能够获取到多少元素默认是10与mysql中的limit不同 #limit精确redis对于count只是一个建议、提示并且它和最后的结果也比一定一致 cursor 表示游标用来记录当前遍历的位置不能理解为下标并不是一个连续递增的整数仅仅是一个字符串供服务器使用MATCH 参数表示要匹配的键名模式COUNT 参数表示每次遍历返回的最大元素个数所以最后返回的结果条数并不一定与count值相等。COUNT这个里的数字不是说每次遍历都得设置成一样。这其中执行命令的前半部分下次遍历光标开始的位置.(这与传统的下标不同)后半部分真正遍历到的key内容当命令返回的cursor回到0了才说明遍历结束了。   使用示例  # 遍历整个数据库 SCAN 0 # 输出结果为(10086, [key1, key2, key3, ...])# 遍历数据库中匹配指定模式的键 SCAN 0 MATCH prefix:* # 输出结果为(10086, [prefix:key1, prefix:key2, prefix:key3, ...])# 分批遍历数据库中的键 SCAN 0 COUNT 10 # 输出结果为(10086, [key1, key2, key3, ..., key10]) #使用SCAN命令从游标0开始每次返回最多10个键值对。 #如果还有更多的数据需要遍历返回的结果中会包含一个新的游标值我们可以使用这个新的游标值进行下一次遍历。# 第一次执行scan 0 127.0.0.1:6379 scan 0 1) 11 2) 1) user2) a3) test4) user.name5) hk6) y7) user.city8) b9) list110) c# 使用新的cursor 11,执行scan 11 127.0.0.1:6379 scan 11 1) 0 2) 1) list22) k3) x运行命令和结果解释 1、第一次执行scan 0 返回结果包括两部分第一部分 11 就是下次执行scan命令需要的cursor参数第二部分是返回的10个键。 2、第二次执行scan 11 得到的结果是 “0”说明所有的键都已经被遍历过了。 如果还有更多的数据需要遍历返回的结果中会包含一个新的游标值我们可以使用这个新的游标值进行下一次遍历。 需要注意,  由于Redis是一个内存数据库如果要遍历的数据集比较大可能会对服务器性能产生一定的影响。此外由于Redis是一个键值存储数据库遍历的顺序是不确定的。 总结一下Redis的渐进式遍历通过SCAN命令实现可以高效地逐步获取大量的数据。在实际使用中我们可以根据需求设置合适的COUNT参数来控制每次返回的数据量以及根据返回结果中的游标值来进行下一次遍历。每次使用 SCAN 命令遍历时都需要将上一次遍历的游标作为下一次遍历的参数传递进去以便继续从上次遍历结束的地方开始。因此使用 SCAN 命令进行渐进式遍历时需要编写一些代码来管理游标。 注意事项 渐进式遍历在遍历过程中不会在服务器存储任何的状态信息此处的遍历随时可以终止。 举个例子来理解  比如我去买煮馍吃商家都做了一半了此时我想取消。 在这个例子中我相当于客户端商家相当于服务器 如果我想取消此时已经在服务器保留了状态信息此时就会对服务器的运行造成影响。但是redis的服务器不保留任何状态 scan命令能有效的解决keys命令带来的阻塞问题但是却带来新的问题。 在scan过程中如果键发生了变化增、删、改那么有可能会出现新增的键没有遍历到或者遍历出了重复键的情况。这是在开发过程中需要注意到的地方。   使用迭代器或foreach循环遍历集合时如果在遍历过程中直接调用集合的修改方法如add、remove等会导致迭代器的内部状态与集合的实际状态不一致从而抛出ConcurrentModificationException异常。
http://www.zqtcl.cn/news/850337/

相关文章:

  • 临沂网站建设搭建短视频如何引流与推广
  • 网站项目建设管理简介网络营销的概念
  • 网站后台怎么添加代码食品网站开发的背景
  • 茶楼 网站dedecms 旅游网站模板
  • 物流网站做那个好凯里网站设计
  • 网站 方案网页设计尺寸用怎么量
  • 商城购物网站设计内容互联网公司网站建设费用
  • 做租号玩网站赚钱吗网站下的源代码和自己做的区别
  • 关于校园网站的策划书久久建筑网的账号
  • 网站宣传的方式怎么查看一个网站有没有做推广
  • 台州房产网站建设自助开通网站
  • 佛山正规网站建设报价二级域名需要申请吗
  • 网站用户体验比较论坛类网站可以做移动端吗
  • 佛山网站优化建设网站设计公司种类
  • 永嘉高端网站建设效果空间设计手法有哪些
  • 好模板网站盐城做网站价格
  • 农村自建房设计图 效果图常州百度推广优化
  • 北京便宜网站建设为什么自己做的网站别的电脑打不开
  • 濮阳网站建设哪里便宜html页面模板
  • 个人推广网站wordpress 交友模板
  • 新乡网站建设价格中国反钓鱼网站联盟
  • 在线工具网站网站建设公司ejiew
  • 个人搭建网站教程王牌网站做代理
  • 网站地图什么意思电子商务营销推广
  • 手机排行榜网站教育平台网站开发
  • 佛山市顺德区建设局网站萧山网站建设
  • 合肥百度团购网站建设怀化网站开发
  • 网站建设ppt模板彩票网站开发dadi163
  • 网站建设4435建筑设计一般用什么软件
  • 河南网站建设重庆森林台词