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

Redis--模糊查询--方法实例

原文网址:Redis–模糊查询–方法/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍Redis模糊查询的方法。

官网网址

https://redis.io/commands/keys/

https://redis.io/commands/scan/

Redis模糊查询键的方法

Redis提供了两种模糊查询键的方法:KEYS , SCAN。推荐用SCAN,下边会介绍。

模糊查询的通配符

KEYS和SCAN都支持glob通配符中的三个:*,,[]:

  • *:通配任意多个字符
  • :通配单个字符
  • []:通配括号内的某一个字符

示例

  • hllo
    • 匹配 hello, hallo and hxllo
  • h*llo
    • 匹配 hllo、heeeello
  • h[ae]llo
    • 匹配 hello、hallo
    • 不匹配 hillo
  • h[^e]llo
    • 匹配 hallo、hbllo…
    • 不匹配 hello
  • h[a-b]llo 匹配 hallo and hbllo

KEYS

说明

KEYS指令会一次性查出所有满足条件的key(没有 offset、limit 参数)。keys 算法是遍历算法,复杂度是 O(n)。

数据量大时会有问题:redis 是单线程的,操作都是原子的,如果实例中有千万级以上的 key,这个指令就会导致 Redis 服务卡顿,所有读写 Redis 的其它的指令都会被延后甚至会超时报错,可能会引起缓存雪崩甚至数据库宕机。

指令格式

KEYS pattern

pattern即key的正则表达式。

示例

先写入一些数据:

192.168.xxx.21:6379[2]> set hello 1 OK 192.168.xxx.21:6379[2]> set word 1 OK 192.168.xxx.21:6379[2]> set hellp 1 OK 192.168.xxx.21:6379[2]> set ahellog 1 OK 192.168.xxx.21:6379[2]> set hellog 1 OK

查询:

192.168.xxx.21:6379[2]> keys * 1) "hello" 2) "hellog" 3) "hellp" 4) "word" 5) "ahellog" 192.168.xxx.21:6379[2]> keys *hell* 1) "hello" 2) "hellog" 3) "hellp" 4) "ahellog" 192.168.xxx.21:6379[2]> keys hell* 1) "hello" 2) "hellog" 3) "hellp" //知道前面的一些字母,忘记了最后一个字母 192.168.xxx.21:6379[2]> keys hell? 1) "hello" 2) "hellp" //知道前面的一些字母,忘记了最后两个个字母 192.168.xxx.21:6379[2]> keys hell?? 1) "hellog" //知道前面四个字母,最后一个字母有可能是p t y 其中的一个 192.168.xxx.21:6379[2]> keys hell[pty] 1) "hellp" 192.168.xxx.21:6379[2]>

SCAN

上边是文章的部分内容,为便于维护,全文已转移到此网址:Redis-模糊查询-实例 - 自学精灵

http://www.cnnetsun.cn/news/544635.html

相关文章:

  • 定位内存访问违例:HardFault_Handler项目应用实例
  • HY-MT1.5部署监控方案:GPU利用率与QPS实时观测实战
  • STM32F1/F4系列Keil5芯片包下载完整示例
  • HY-MT1.5-7B微调教程:领域自适应训练部署全流程
  • HY-MT1.5-7B API封装:构建私有翻译服务接口教程
  • 手把手教程:ARM架构下裸机启动代码从零实现
  • LLM扩散模型修复模糊医学影像
  • QoS质量配置
  • 安全副业指南:漏洞挖掘 / 技术博客 / 竞赛奖金实战,哪个方向更适合你?
  • 想零基础学黑客技术?一些国内网络安全的论坛网站分享。
  • 嵌入式开发避坑指南:HardFault_Handler问题定位核心要点
  • Java Web 课程答疑系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 基于SpringBoot+Vue的师生共评作业管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 洗衣店订单管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • SpringBoot+Vue 课程答疑系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 师生共评作业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 前后端分离BB平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 手把手解析74194四位移位寄存器引脚定义
  • vh6501测试busoff:硬件工程师实战案例解析
  • openmv与stm32通信入门必看:手把手教程(从零实现)
  • 模拟电子技术驱动的振荡器设计:从零实现教程
  • ADC+DMA采集入门:避免CPU频繁干预的方法
  • pytorch深度学习笔记13
  • FreeModbus在STM32CubeIDE环境下的构建教程
  • 曾仕强老师谈婚姻前应该做什么
  • ModbusPoll下载通信测试:操作指南从零实现
  • Day 08:【99天精通Python】列表推导式与元组 - 进阶技巧与不可变序列
  • JLink驱动开发深度剖析:固件加载机制详解
  • STM32上手ModbusTCP:新手教程从零开始
  • IAR下载常见问题解析:一文说清解决方案