Redis——渐进式遍历和数据库管理命令
介绍
如果使用keys * 这样的操作,将Redis中所有的key都获取到,由于Redis是单线程工作,这个操作本身又要消耗很多时间,那么就会导致Redis服务器阻塞,后续的操作无法正常执行
而渐进式遍历,通过多次执行遍历命令,化整为零,就既可以获取所有的key,又不会阻塞服务器。
scan
参数 | 含义 |
---|---|
cursor | 光标,代表当前指向的位置,为0时,表示遍历从头开始 |
match | 用通配符描述要匹配的key的样子 |
count | 要获取key的个数,默认是10,并且这里只是对服务器的建议个数,实际返回个数可能和count不同 |
type | 指定要获取的key的类型 |
返回值 | 包含两个部分,前半部分是告诉程序员下次遍历时光标从哪里开始,后半部分是此次遍历的key的内容 |
通配符类型:
通配符 | 作用 |
---|---|
? | 匹配任意一个字符 |
* | 匹配0个或多个任意字符 |
[a,b,c,d] | 匹配a,b,c,d中的字符,其他的不可以 |
[^a] | 只有a不能被匹配 |
[a-z] | 匹配a-z之间的任意字符,包含a和z |
需要注意,光标并不是下标,光标不是一组连续的整数,而是一组字符串
例如:
第一次返回的是1,那么第二条指令就让光标指向1,第二次返回7,那么第三条指令就让光标指向7,返回0代表所有的key都被遍历完了
例如加上通配符:
可以看到,count虽然为2,返回的个数是1个
并且,Redis可能返回empty list or set
Redis的渐进性遍历,不会在服务器存储状态信息,因此遍历是可以随时终止的,不会对服务器产生任何副作用
但是需要注意,渐进式遍历虽然解决了服务器阻塞的问题,但是如果遍历过程中有key的增删查改,可能会导致遍历的重复或者遗漏
数据库管理命令
MySQL中有database的概念,每个database中有若干个table,而Redis中也有16个database,编号0-15,这16个database的数据相互隔离,并且用户不能创建或者删除database,默认情况下使用0号database
一开始设置的key在0号数据库,而切换到1号数据库就获取不到key了
select
切换数据库,index是对应数据库的编号,从0到16
dbsize
获取当前数据库key的个数
flushdb和flushall
flushdb是删除当前数据库中所有的key,而flushall是删除所有数据库中所有的key
可以添加ASYNC或者SYNC参数,代表异步操作或者同步操作
相关文章:
Redis——渐进式遍历和数据库管理命令
介绍 如果使用keys * 这样的操作,将Redis中所有的key都获取到,由于Redis是单线程工作,这个操作本身又要消耗很多时间,那么就会导致Redis服务器阻塞,后续的操作无法正常执行 而渐进式遍历,通过多次执行遍历…...
如何打造可视化警务巡防通信解决方案
近年来,科学技术飞速发展,给予了犯罪分子可乘之机。当面临专业化的犯罪分子、高科技的犯罪手段,传统警务模式似乎不能满足警方打击犯罪的需要,因此当今公安工作迫切需要构建智能化、系统化、信息化的警务通信管理模式。 警务人员…...
ATF(TF-A) SPMC威胁模型-安全检测与评估
安全之安全(security)博客目录导读 ATF(TF-A) 威胁模型汇总 目录 一、简介 二、评估目标 1、数据流图 三、威胁分析 1、信任边界 2、资产 3、威胁代理 4、威胁类型 5、威胁评估 5.1 端点在直接请求/响应调用中模拟发送方或接收方FF-A ID 5.2 篡改端点和SPMC之间的…...
BIO AIO NIO 的区别
BIO AIO NIO 是 Java 中用于 I/O 操作的三种不同的编程模型。它们的区别在于它们执行I/O 操作的方式和效率。在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。 同步与异步 同步:同步就是发起一个调用后ÿ…...
大数据学习1.1-Centos8网络配置
1.查看虚拟网卡 2.配置网络信息 打勾处取消 记住箭头的数字 3.修改 网络连接 4.进入虚拟网络 5.进入属性 6.修改IPv4 5.将iIP和DNS进行修改 6.配置网络信息-进入修改网络配置文件 # 进入root用户 su root # 进入网络配置文件 cd /etc/sysconfig/network-scripts/ # 修改网络配…...
在Android studio 创建Flutter项目运行出现问题总结
在Android studio 中配置Flutter出现的问题 A problem occurred configuring root project ‘android’出现这个问题。解决办法 首先找到flutter配置的位置 在D:\xxx\flutter\packages\flutter_tools\gradle位置中的flutter.gradle buildscript { repositories { googl…...
Ceph入门到精通-ceph对于长文件名如何处理
RADOS object with short name 上一篇博文,我们将介绍了对象相关的数据结构ghobject_t,以及对象在底层文件系统存储的文件名,以及如何从文件名对应到 ghobject_t对象。 映射关系如下图所示: 这里面有一个漏洞,即obje…...
vue+element-ui 项目实战示例详解【目录】
vue 和 element是两个流行的前端即时,通常用于管理后台,PC等页面 能够快速构建美观的界面 1. vue2 介绍 Vue.js是一个流行的JavaScript框架,用于构建用户界面。它的版本分为Vue 2和Vue 3,而Element是一个基于Vue.js 2的UI组件库。…...
性能测试-性能调优主要方向和原则(15)
性能调优主要方向明确性能瓶颈之后,就需要进行性能调优了,调优主要从图所示的多个方向入手。能优化手段并不一定是独立应用的,在一次优化过程中很可能应用了多种优化技巧。 硬件层面优化 硬件层面优化更偏向于监控,当定位到硬件资源成为瓶颈后,更多是采用扩容等手段来解决…...
关于taos数据库使用过程中突发“unable to establish connection”问题解决
项目使用的版本信息 1.taos的版本信息 3.0.4.1 2.jdbc的版本 3.2.1 3.druid连接池版本 1.2.11问题描述 Java应用服务连接,突然大量抛出如下的异常信息导致应用宕机: sql: select server_status(), desc: unable to establish connection和集团DBA沟通…...
【Qt】Qt中将字符串转换为数字类型的函数总结以及用法示例
在Qt中,可以使用以下函数将字符串转换为数字类型: toInt():将字符串转换为int类型。toDouble():将字符串转换为double类型。toFloat():将字符串转换为float类型。toLongLong():将字符串转换为long long类型…...
效率工具3-计算机网络工具
查看各个状态的tcp连接情况 netstat -n | awk ‘/^tcp/ {S[$NF]} END {for(a in S) print a, S[a]}’ /^tcp/ 正则表达式匹配 netstat 命令输出的匹配部分,即以 "TCP" 开始的行{S[$NF]} 对于符合条件的每一行,awk 命令将使用数组 S 来计算每…...
2万多条汉字笔画笔顺查询ACCESS\EXCEL数据库
发现很多新华字典类的数据都没有笔顺的相关数据,因此就找了一下笔顺查询相关,发现有两个模式,一种是每个字每个笔画都有一张图片(很庞大的图片数据量);一种是笔画图片文件显示型,比如今天采集的…...
我的一周年创作纪念日,感谢有你们
机缘 还记得 2022 年 09 月 19 日吗? 我撰写了第 1 篇技术博客:《纯CSS实现Material文本框(PC和移动端都可以使用)》;从此就开始了我在CSDN记录日常工作中开发和学习的第一步。在后续又参加了新星计划,取得…...
【音视频】ffplay源码解析-PacketQueue队列
包队列架构位置 对应结构体源码 MyAVPacketList typedef struct MyAVPacketList {AVPacket pkt; //解封装后的数据struct MyAVPacketList *next; //下一个节点int serial; //播放序列 } MyAVPacketList;PacketQueue typedef struct PacketQueue {MyAVPacketList …...
C++ 霍夫变换圆形检测
霍夫变换圆形检测 一、检测原理二、实现步骤三、算法实现一、检测原理 HoughCircles 参数说明: HoughCircles( InputArray image, // 输入图像 ,必须是 8 位的单通道灰度图像 OutputArray circles, // 输出结果,发现的圆信息 Int method, // 方法 - HOUGH…...
南阳师范学院图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著——2023学生开学季辉少许
南阳师范学院图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著——2023学生开学季辉少许...
如何将你在树莓派上部署的 IoT 物联网 MQTT 服务发布到公网?
上一章,你成功的在树莓派搭建了 EMQX 开源社区版,用来提供 MQTT 服务,并验证了设备端接入和消息通信。但你发现只能在局域网内访问 emqx.local 服务,而 IoT 设备分布在全国各地公共网络环境,这些设备该如何接入呢&a…...
系统架构设计师(第二版)学习笔记----软件工程
【原文链接】系统架构设计师(第二版)学习笔记----软件工程 文章目录 一、软件工程1.1 软件危机的表现1.2 软件工程的内容 二、软件过程模型2.1 软件的声明周期2.2 瀑布模型2.3 瀑布模型的缺点2.4 原型模型2.5 原型模型开发阶段2.6 开发原型的途径2.7 螺旋…...
C与C++字符串分割方法示例汇总
在C语言中,没有内置的字符串分割函数。但是,你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例: #include <stdio.h> #include <string.h> int main() {char str[] "Hel…...
HTTP代理与VPN:网络代理技术的比较
HTTP代理和VPN是两种常见的网络代理技术,它们可以帮助用户隐藏自己的IP地址、保护网络隐私、绕过网络限制等。本文将介绍HTTP代理和VPN的定义、工作原理、优缺点以及使用场景。 一、HTTP代理 HTTP代理是一种通过代理服务器转发网络请求的技术。当用户发起网络请求时…...
免费低代码平台,助企业高效管理任务
编者按:本文主要介绍了免费的低代码平台实现了高效的任务管理系统,助力企业在任务管理方面的效率更上一层楼!这个免费的低代码平台,将提高员工的工作效率。它不仅是一个任务管理系统,更是一个能让 企业 摆脱繁琐工作&a…...
基于conda的相关命令
conda 查看python版本环境 打开Anaconda Prompt的命令输入框 查看自己的python版本 conda env list激活相应的python版本(环境) conda avtivate python_3.9 若输入以下命令可查看python版本 python -V #注意V是大写安装相应的包 pip install 包名5.查看已安装…...
【微信小程序】swiper的使用
1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…...
iText实战--PDF和iText 简介
PDF可以做如下事务 iText 5步创建PDF import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter;public class PdfHelloWorld {/*** param args*/public static void main(String[]…...
「大数据-0.1」虚拟机VMware安装、配置、使用、创建大数据集群教程
目录 一、下载VMware Wworkstation Pro 16 二、安装VMware Wworkstation Pro 16 三、检查与设置VMware的网卡 1. 检查 2. 设置VMware网段 四、在VMware上安装Linux虚拟机 五、对安装好的虚拟机进行设置 1. 打开设置 2. 设置中文 3. 修改字体大小 4. 修改终端字体大小 5. 关闭虚…...
【HTTP】GET 和 POST 的区别
GET 和 POST 的区别 首先: GET 和 POST 没有本质区别, 具体来说, GET 的使用场景可替换为 POST,POST 使用的场景也可以替换为 GET. 语义上的区别: GET 通常用来获取数据, POST 通常用来上传数据. 现状是 GET 也经常用来上传数据, POST 也经常用来获取数据. 数据存放的位置不同…...
Unity Asset Bundle Browser 工具
Unity Asset Bundle Browser 工具 您可以在 Unity 项目中使用 Asset Bundle Browser 工具能够查看和编辑资源包的配置。 有关更多信息,请参阅 Unity Asset Bundle Browser 文档。 注意:此工具是不受支持的实用程序。查看极大的资源包可能会导致性能下…...
使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
1462. 课程表 IV
文章目录 Tag题目来源题目解读解题思路方法一:Floyd传递闭包方法二:拓扑排序 思考写在最后 Tag 【拓扑排序】【传递闭包】【并查集】【数组】 题目来源 1462. 课程表 IV 题目解读 给你一个表示课程先决条件的数组 prerequisites,prerequis…...
wordpress travel/百度竞价推广屏蔽软件
多任务系统 单任务系统,也称作前后台系统,中断服务函数作为前台程序,大循环 while(1)作为后台程序 前后台系统的实时性差 任务调度器决定 那个任务先执行,后执行。 FreeRTOS 是一个抢占式的实时多任务系统, 任务调度…...
购物网站html/seo排名计费系统
用Eclipse在线安装的方式:Help-->Install New Software 地址输入:http://m2eclipse.sonatype.org/sites/m2e/,列表中打勾勾上后点击Next 安装maven插件时遇到了如下的错误: Cannot complete the install because one or more …...
做视频网站收入/推广引流吸引人的标题
g的编译选项介绍: -WI的理解,gcc的-WI,xxx选项似乎是在 gcc 中使用 ld 链接选项时候的编译器选项 -L: “链接” 的时候,去找的链接库的目录 - rpath(或 - R ,这似乎是一个内容),意思是“运行…...
做网站的成本在哪/必应搜索引擎怎么样
按照相关交通领域机构发布的数据显示,近年来,分心驾驶已经成为公路事故和死亡的主要原因。同时,随着高阶智能驾驶的陆续前装上车,驾驶员的监控(保证对前方道路的持续注意力)也成为安全风险的“重灾区”。 …...
做网站做丝袜美女的能行吗/今天的新闻
与客户“调情” 作者 Jenni (Dow) Jepsen 译者 侯伯薇 在世界上,到处都有教人们如何调情的课程。某个德国的大学甚至要求他们的IT工程师参加调情的课程——并不是要吸引伙伴,而是要学习如何在工作中更有效地交流。乍听起来似乎有些“轻浮”,但…...
网站源码编辑软件/职业技能培训
--事物的难度远远低于对事物的恐惧! 最近出差较多,没什么时间记录博客笔记,刚好乘五一假期好好写一点。今天我们来看看C语言条件编译使用分析。 在C语言中,我们很熟悉if...else...这样的条件语句,而我们这章所说的条件…...