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

Redis渐进式遍历:安全高效的键扫描术

之前在核心指令讲解中提到

keys *  一次性的把整个redis中所有的key都获取到

这个操作是比较危险的,可能一下子得到太多的key,阻塞redis服务器

通过渐进式的遍历,就可以做到,既能够获取到所有的key,同时又不会卡死服务器

所以渐进式遍历是为了避免阻塞服务器

渐进式:不是一个命令,把所有的key都拿到,而是每执行一次命令,只获取到其中的一小部分,这样的话能够保证当前这一次操作不会太卡,要想得到所有的key就需要多次遍历了,多次执行渐进式遍历命令

渐进式遍历其实是一组命令,这一组命令的使用方法是一样的

其中代表命令scan

Redis 的 scan命令是一种用于迭代遍历 Redis 数据库中键的命令,它可以逐步迭代所有键(或指定模式的键),相比 KEYS 命令更适合在生产环境中使用。

用法:

这个match pattern就是之前讲的key命令中的匹配模式,对于命令key *可以忘记了,以后用这个

count就是限制一次遍历能够获取到多少个元素,默认是10

此处的count只是给redis服务器一个”提示/建议“,写入的count和实际返回的key的个数不一定是完全相同的,但是也不会差很多(注意redis中不是精确值,Redis 会根据内部数据结构调整实际返回数量,mysql中的limit是精确的)

还有一个选项type,这个是redis6+才支持的,可以指定返回的键的类型

注意:如果命令返回0了就说明遍历结束了

注意这两张图片是连在一起的,看返回值,返回是告诉你下一次要从哪里开始遍历,这个程序员也看不懂,redis服务器懂就行,只需要知道下一次遍历从这里开始就行

简单来说之前就是我一次如果遍历key *,如果我遍历一半了之后,想要取消是取消不了的,服务器一股脑的从头到尾的扫描,即使你客户端断开连接,而scan不是这样,遍历是可以随时中断的,你只需要记录每次的光标移动到哪,你过一会再使用也行

注意:渐进式遍历scan虽然解决了阻塞的问题,但如果在遍历期间键有所变化(增加/修改/删除等),可能会导致遍历时键的重复遍历或者遗漏,这点务必在实际开发中考虑

虽然scan比keys要好点,但是使用的时候也还是有很多的注意事项的,很多的出错的可能的

真的需要遍历redis中所有的key吗???

mysql中有一个重要的概念:database

一个mysql服务器上可以有很多个database,一个database上可以有很多个表,mysql中可以随心所欲的创建/删除 数据库

在前面的学习过程中,感觉好像就是上来就是key value  key  value

其实redis中也是有database这样的概念的,只不过不像mysql那样随意

默认redis给咱们提供了16个数据库 0-15

这16个数据库中的数据是隔离的,相互之间不会有影响

默认情况下使用的数据库就是0号的

实际使用redis很少会关注到数据库,一般都是默认使用0号就可以了

flushdb:删除当前数据库中所有的key

flushall:删除所有数据库中所有的key

(注意以后在公司里千万不敢乱用!!!尤其是在生产环境上)

身处哪个数据库就返回哪个数据库的key个数

http://www.dtcms.com/a/473978.html

相关文章:

  • Java-集合练习2
  • sql优化之联合索引
  • 基于51单片机无线八路抢答器
  • 网站怎么做白色字阿里巴巴网站官网
  • 2.3进程同步与互斥
  • 计算机组成原理之第一章计算机系统概述
  • 无服务器架构下的ACID特性实现方案
  • 四平方和定理
  • 搜索郑州网站服装网站建设
  • 广西临桂建设局网站如何做家乡网站
  • Leetcode2166-设计位集
  • 三种方法解——力扣206.反转链表
  • 企业网站广告网站响应式是什么意思
  • 湖南省郴州市邮编东莞seo网站建设公司
  • 差分信号可以分解为共模信号与差模信号
  • **标题:发散创新:探索SSR渲染技术的深度实现****摘要**:本文将深入探讨服务端渲染(SSR)技术的原理、优势以及实
  • 计算机视觉(opencv)——MediaPipe 实现手部关键点检测与可视化
  • 贵州省建设学校官方网站昆明网络公司开发
  • 没有版权可以做视频网站吗设计之家素材
  • Tomcat是一个容器
  • Easyx图形库应用(和Server程序进行交互)
  • Python自学25 - Django快速上手
  • 太原云起时网站建设广东知名网站建设
  • AI学习日记——深度学习
  • 如何设置PostgreSQL表字段为自增主键
  • 排版工具:也说Markdown的使用方法
  • 分销网站建站wordpress调用推荐文章代码
  • 数据湖Hudi-读取流程可视化
  • 智能环境感知屏幕自适应系统:原理、架构与实现
  • 中卫网站制作公司公司网站seo怎么做