码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis--模糊查询--方法/实例


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

    简介

    说明

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

    官网网址

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

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

    Redis模糊查询键的方法

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

    模糊查询的通配符

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

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

    示例

    • h?llo
      • 匹配 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的正则表达式。

    示例

    先写入一些数据:

    1. 192.168.xxx.21:6379[2]> set hello 1
    2. OK
    3. 192.168.xxx.21:6379[2]> set word 1
    4. OK
    5. 192.168.xxx.21:6379[2]> set hellp 1
    6. OK
    7. 192.168.xxx.21:6379[2]> set ahellog 1
    8. OK
    9. 192.168.xxx.21:6379[2]> set hellog 1
    10. OK

     查询:

    1. 192.168.xxx.21:6379[2]> keys *
    2. 1) "hello"
    3. 2) "hellog"
    4. 3) "hellp"
    5. 4) "word"
    6. 5) "ahellog"
    7. 192.168.xxx.21:6379[2]> keys *hell*
    8. 1) "hello"
    9. 2) "hellog"
    10. 3) "hellp"
    11. 4) "ahellog"
    12. 192.168.xxx.21:6379[2]> keys hell*
    13. 1) "hello"
    14. 2) "hellog"
    15. 3) "hellp"
    16. //知道前面的一些字母,忘记了最后一个字母
    17. 192.168.xxx.21:6379[2]> keys hell?
    18. 1) "hello"
    19. 2) "hellp"
    20. //知道前面的一些字母,忘记了最后两个个字母
    21. 192.168.xxx.21:6379[2]> keys hell??
    22. 1) "hellog"
    23. //知道前面四个字母,最后一个字母有可能是p t y 其中的一个
    24. 192.168.xxx.21:6379[2]> keys hell[pty]
    25. 1) "hellp"
    26. 192.168.xxx.21:6379[2]>

    SCAN

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

  • 相关阅读:
    VUE项目使用.env配置多种环境以及如何加载环境
    java面试题
    N位质数c++
    表单提交,页面滚动到必填项位置
    problem B.Genshin Impact(2022合肥icpc)
    项目经理想在职场上混得开,还是得学会它
    JAVA 版小程序商城免费搭建 多商家入驻 直播带货 商城系统 B2B2C 商城源码之 B2B2C产品概述
    你在终端启动的进程,最后都是什么下场?(下)
    Spring Boot 4 实现JwtToken验证(重点)&&实现后端API(重点)&&前端:实现注册与登录模块(略)
    【题解】同济线代习题一.8.5
  • 原文地址:https://blog.csdn.net/feiying0canglang/article/details/126530450
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号