深入学习 Redis - 渐进式遍历 scan 命令、数据库管理命令

目录

前言

一、scan 命令

二、数据库管理命令

select

dbsize

flushdb / flushall 


前言


之前我们所了解到的 keys * 是一次性把整个 redis 中所有的 key 都获取到,但是整个操作比较危险,可能会一下子的都太多的 key,阻塞 redis 服务器.

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

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

一、scan 命令


 scan 就是渐进式遍历的代表命令.

SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

cursor:此处设计到一个光标的概念,光标就指向了当前遍历的位置(起初光标位置为 0),每次遍历都会产生一个光标位置,下次使用 scan 遍历时就需要接着上次光标产生的位置.

[MATCH pattern]:这里和之前介绍的 keys 命令是一样的.

[COUNT count]:限制一次遍历能过获取到多少元素(注意,这里的 count 只是给 redis 服务器的 “建议”,写入的 count 和实际返回的 key 的个数不一定完全相同,但是不会差很多).

[TYPE type]:redis 里的 key 都是 string ,但是 value 类型是不一样的.

假设目前有如下 keys 

通过渐进式遍历就可以得到如下结果:

Ps:渐进式遍历,在遍历的过程中,不会在服务器这边存储任何的状态信息,此处的遍历是随时可以终止的,解决了阻塞问题。

但是值得注意的是如果在遍历期间键有所变化(增加、修改、删 除),可能导致遍历时键的重复遍历或者遗漏,这点务必在实际开发中考虑。

二、数据库管理命令


在 mysql 上有个重要的概念——database,可以进行随心所欲的 创建/删除 数据库~

redis 也有 database 这样的概念,只不过不像 mysql 那样随意. redis 中的 database 是现成的,咱们不能创建新的数据库,也不能删除已有的数据库~

默认的 redis 给我们提供了 16 个数据库,编号为 0 - 15,这 16 个数据库之间的数据是隔离的,默认情况下使用数据库就是 0 号.

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

select

select dbIndex

使用这个命令就可以进行数据库的切换

dbsize

获取当前数据库中的 key 的个数.

flushdb / flushall 

flushdb 用来删除当前数据库中所有的 key.

flushall 用来删除所有数据库中的 key.

Ps:永远不要在线上环境执⾏清除数据的操作,除⾮你想体验⼀把 “从删库到跑路” 的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本

注意:我这里的离线安装包是V1.23.9. K8S v1.23.9离线安装包下载: 链接:https://download.csdn.net/download/qq_14910065/88143546 这里包括离线安装所有的镜像,kubeadm,kubelet 和kubectl,calico.yaml&am…

linux系统共享文件夹的创建和使用(VMware )

虚拟机设置共享文件夹 点击设置 点击选项 选择共享文件夹 随便添加一个电脑上的文件夹 虚拟机内打开共享文件夹 打开根目录 打开mnt文件夹 继续点击 最终得到共享文件夹

一文讲清多线程与多线程同步

1 多线程 1.1 线程的概念 十多年前,主流观点主张在可能的情况下优先选择多进程而非多线程,如今,多线程编程已经成为编程领域的事实标准。多线程技术在很大程度上改善了程序的性能和响应能力,使其能够更加高效地利用系统资源&…

【读书笔记】CHAPTER 1: SCALE FROM ZERO TO MILLIONS OF USERS

如果你有一定工作经验,或者开发项目基础,就看这个图就可以。 一个“从零扩展到数百万用户”系统,基本由上述部分组成: web、app:触达用户的设备(页面) DNS:用户看到的都是域名(ww…

count(列名) ,count(1)与count(*) 有何区别?

Mysql版本:8.0.26 可视化客户端:sql yog 文章目录 一、Mysql之count函数简介二、count(列名) ,count(常量)与count(*) 有何区别?2.1 统计字段上的区别2.2 执行效率上的区别 一、Mysql之count函数简介 👉表达式 COUNT(…

Centos7 上安装 redis-dump 和redis-load 命令

一、安装rvm 1、安装GPG keys gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL http://rvm.io/mpapis.asc | gpg2 --import - curl -sSL http://rvm.io/pkuczynski.asc | g…

如何在项目需求与技术方案未确定的情况下掌控上线时间?

需求不明确与技术方案未确定的挑战 在任何项目管理过程中,需求和技术方案是两个核心环节。理想情况下,我们希望在项目开始阶段就有清晰明确的需求和经过深思熟虑的技术方案。然而,现实中的项目管理往往并不如此理想。 项目需求的重要性 需求…

谷粒商城第七天-商品服务之分类管理下的删除、新增以及修改商品分类

目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端部分 2.1 删除功能 2.2 新增功能 2.3 修改功能 三、后端部分 3.1 删除接口 3.2 新增接口 3.3 修改接口 四、总结 一、总述 1.1 前端思路 删除和新增以及修改的前端无非就是点击按钮,就向后端发送请求…

将网盘挂载到本地保姆级教程

视频链接:https://www.bilibili.com/video/BV1SA411B7qc Clouddrive2:是一款非常实用的国内网盘服务挂载应用。它支持多种国内知名网盘服务,包括阿里云盘、115云盘、天翼云盘等。通过CloudDrive 2,你可以将这些网盘服务挂载到你的…

夏日暴雨,6大安全应对攻略,让我们一起做好防范

夏季暴雨来袭,我们必须高度警惕!短时间的强降雨可能导致积水、山区滑坡、城市内涝等问题,给社会和经济发展带来严重影响。今天,让我们一起探讨一些有效的防范措施,确保个人安全与减少灾害损失。关注天气预警&#xff0…

MyBatis查询数据库

1.MyBatis 是什么? MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置 和映射原始类型、接⼝和 Java POJO&#…

groovy.lang.GroovyRuntimeException:Ambiguous method

目录 问题 根因及解决 问题 今天线上的计算脚本报了个问题,报警如下是 groovy 运行时异常。调用方法 org.springframework.util.CollectionUtils#isEmpty 出现了异常。异常原因是由于方法重载造成了歧义。无法确定如何调用方法 [null],因为它同时匹配了…

UE4/5 PoseDriver 动画蓝图节点使用

PoseDriver节点可以进行Pose的比对,从而针对不同Pose生成不同权重数值,权重数值可应用至MorphTarget上使动画更加逼真,或应用至角色挂件上,制作出类惯性或弹簧的附加效果。 1.创建Pose 这里创建Box作为演示,下图大Bo…

《评论文章-无线纳米技术可以降低脊髓刺激成本和并发症,传统设备与无线刺激设备费用相比的回顾》

SCS治疗可能会出现并发症,并且管理这些并发症的费用很高。 慢性疼痛是促使人们寻求缓解的主要因素,也是阿片类药物研究的主要方向。 SCS治疗取得了突破性进展,在治疗背部手术失败综合征、神经性疼痛障碍、复杂区域疼痛综合征以及血管缺血引…

【数据库】将excel数据导入mysql数据库

环境:Windows10 mysql8以上 将你要导入的excel表另存为txt格式 打开txt格式文件,删除表头行并另存为并更改编码方式(由于与数据库的编码不同,会导致导入报错) 通过命令行登录数据库 winr cmd进入 进入装mysql的目录位…

Kafka3.0.0版本——Broker(总体工作流程)

目录 一、Kafka中Broker总体工作流程图解二、Kafka中Broker总体工作流程步骤解析 一、Kafka中Broker总体工作流程图解 总体工作流程图解 二、Kafka中Broker总体工作流程步骤解析 1、broker启动后在zk中注册,如下图所示: 2、controller谁先注册&…

【leetcode经典简单题】自食用||删除链表中倒数第k个结点

step by step. 题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出&a…

怎样在Apipost中设计出实用又好看的API文档

Apipost一直推荐文档先行的API设计理念,在Apipost中可以添加Markdown格式的文本,用以储备文档和API文档设计。 作为一种轻量级标记语言,Markdown在撰写文档、博客文章、README文件以及网站内容上被广泛使用。 如何在Apipost中设计出漂亮的文…

分享低成本非隔离PWM控制AC-DC开关芯片 YB5011

简介: YB5011系列是一款高性能低成本PWM控制功率开关,适用于离线式小功率降 压型应用场合,外围电路简单、器件个数少。同时产品内置高耐压MOSFET可提高 系统浪涌耐受能力,集成有完备的带自恢复功能的保护功能:VDD欠压保护、逐周期…

安防视频监控平台EasyCVR修改参数提示database or disk is full的原因排查

EasyDarwin开源流媒体视频EasyCVR安防监控平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等能力。视频监控综合管理平台EasyCVR具备视频汇聚融合能力,平台基于云边端一体化架构,具有强大…