美文网首页
【redis】模糊查询&删除操作

【redis】模糊查询&删除操作

作者: warmsirius | 来源:发表于2019-10-16 11:51 被阅读0次

    前言

    本文转载自博客园:

    1. 预备知识:redis支持的3种模糊查询操作

    元字符 说明
    * 0个或多个匹配
    ? 1个匹配
    [mnl] 匹配m,n,l其中之一

    一、模糊搜索查询

    redis 默认有16个DB ,分别是 0-15
    redis-cli: 进入默认是第一个DB 0
    select n: 切换 DB

    1. *:0个或多个匹配

    • 例1:查找所有的key
    127.0.0.1:6379> select 9
    OK
    127.0.0.1:6379[9]> keys *
    1) "age"
    2) "name"
    3) "k"
    
    • 例2:0个或多个匹配
    keys h*llo  # 匹配 hllo 和 heeello 等。
    
    127.0.0.1:6379[9]> keys *ame
    1) "ame"
    2) "name"
    

    2. ?:1个匹配

    • 例:?一个匹配
    keys h?llo  # 匹配 hello , hallo 和 hxllo 等,不能匹配hllo。
    
    127.0.0.1:6379[9]> keys ?ame
    1) "name"
    127.0.0.1:6379[9]> keys n?me
    1) "name"
    

    3. [lmn]: m,n,l其中之一

    keys h[ae]llo  # 匹配 hallo 和 hello ,但不匹配 hillo;特殊符号用 \ 隔开。
    
    127.0.0.1:6379[9]> keys *ame
    1) "ame"
    2) "mame"
    3) "lame"
    4) "name"
    127.0.0.1:6379[9]> keys [lmnk]ame
    1) "mame"
    2) "lame"
    3) "name"
    

    二、删除指定key

    1. 删除模糊匹配出的key

    redis-cli -n 数据库名(0-15) keys Pattern | xargs redis-cli -n 数据库名(0-15) del
    
    192:~ yuanjun$ redis-cli -n 9 keys "*ame"
    1) "ame"
    2) "mame"
    3) "lame"
    4) "name"
    192:~ yuanjun$ redis-cli -n 9 keys "*ame" | xargs redis-cli -n 9 del
    (integer) 4
    192:~ yuanjun$ redis-cli -n 9 keys "*ame"
    (empty list or set)
    

    2. flushdb:删除当前数据库中的所有Key

    flushdb 
    

    3. del key: 删除单个 key

    127.0.0.1:6379> set name 'alex'
    OK
    127.0.0.1:6379> del name
    (integer) 1
    127.0.0.1:6379> get name
    (nil)
    

    4. exists:判断是否存在某个key

    在删除某个key之前可以先查询一下是否存在这个key

    127.0.0.1:6379> exists name
    (integer) 0
    127.0.0.1:6379> set name ss
    OK
    127.0.0.1:6379> exists name
    (integer) 1
    

    5. del key1 key2 ...: 同时删除多个key

    127.0.0.1:6379> set name sss
    OK
    127.0.0.1:6379> set lame sss
    OK
    127.0.0.1:6379> set kame sss
    OK
    127.0.0.1:6379> keys *
    1) "kame"
    2) "lame"
    3) "name"
    127.0.0.1:6379> del kame lame name
    (integer) 3
    

    三、批量删除匹配通配符的key

    需要使用Linux中的管道和xargs参数:

    redis-cli -n 数据库名(0-15) keys Pattern | xargs redis-cli -n 数据库名(0-15) del
    
    • 如果需要指定数据库,需要用到 -n 数据库编号 参数,下面是删除 2数据库中 s开头的键:

    如:

    redis-cli -n 2 keys "s*" | xargs redis-cli -n 2 del
    
    redis-cli keys "*" | xargs redis-cli del 
    
    • 如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径
      如:
    /opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del
    

    相关文章

      网友评论

          本文标题:【redis】模糊查询&删除操作

          本文链接:https://www.haomeiwen.com/subject/shyymctx.html