Redis批量删除指定前缀的key


    在redis-cli中键入命令,批量删除前缀为business_login_tokens:的key:

eval "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 'business_login_tokens:*'



    在Redis中,EVAL命令用于执行Lua脚本。这个特定的命令是用来批量删除具有特定前缀的键的。下面是这个命令的详细解释

  • EVAL: 这是Redis命令,用于执行一个Lua脚本。
  • return redis.call('del', unpack(redis.call('keys', ARGV[1]))): 这是Lua脚本的内容。
    • redis.call('del', ...):调用Redis的DEL命令来删除一个或多个键。...表示这里将传入一个或多个键作为参数。
    • unpack(redis.call('keys', ARGV[1])): 在执行DEL命令之前,首先通过redis.call('keys', ARGV[1])调用查找所有匹配ARGV[1]模式的键。ARGV[1]是Lua脚本中的参数,代表从外部传入的第一个参数。keys命令返回的是一个包含所有匹配键名的数组。unpack函数则用来将这个数组展开成一系列单独的参数传递给DEL命令。
  • 0: 这个数字是Lua脚本的参数数量的计数。在这个例子中,因为我们在脚本内部直接使用了ARGV[1],所以外部传递给EVAL命令的参数实际上只有一个(即键的模式),因此计数为0。但这里可能存在混淆,通常如果直接使用ARGV的话,这里的计数应与ARGV中实际使用的参数数目对应,因此正确的计数应该是1而不是0,表示有一个外部参数传递给了脚本。
  • 'business_login_tokens:*': 这是传递给Lua脚本的实际参数,即ARGV[1]的内容。它是一个模式,表示所有以business_login_tokens:为前缀的键。这些键将会被前面提到的Lua脚本找到并删除。

        综上所述,整个命令的作用是删除所有以business_login_tokens:为前缀的键。这是一种清理特定类型缓存条目的高效方式,但需要注意的是,在生产环境中直接使用KEYS命令可能会影响性能,特别是在大数据集上,因为它会遍历整个数据库。因此,这种操作更适用于维护任务或者数据量可控的情况。对于大规模操作,建议使用更安全和高效的方法,如SCAN命令配合Lua脚本来逐步处理。

相关推荐

  1. Redis批量删除指定前缀key

    2024-05-26 01:54:26       12 阅读
  2. Redis 如何批量删除指定前缀Key

    2024-05-26 01:54:26       35 阅读
  3. redis如何批量删除key

    2024-05-26 01:54:26       36 阅读
  4. Redis对过期key删除策略

    2024-05-26 01:54:26       14 阅读
  5. redis根据key模糊删除

    2024-05-26 01:54:26       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-26 01:54:26       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-26 01:54:26       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-26 01:54:26       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-26 01:54:26       20 阅读

热门阅读

  1. 【大数据篇】Hadoop:大数据处理的核心基石

    2024-05-26 01:54:26       14 阅读
  2. 微信小程序:获取经纬度

    2024-05-26 01:54:26       10 阅读
  3. PostgreSQL与MySQL的数据库层面比较

    2024-05-26 01:54:26       13 阅读
  4. git 派生仓库怎么同步主仓库的新分支

    2024-05-26 01:54:26       12 阅读
  5. 若依框架实战指南:从入门到精通

    2024-05-26 01:54:26       12 阅读
  6. 「大数据」Lambda架构

    2024-05-26 01:54:26       12 阅读
  7. 合格的测试工程师,需要掌握的

    2024-05-26 01:54:26       11 阅读
  8. Golang对nil的Slice和空Slice处理是一致的吗

    2024-05-26 01:54:26       12 阅读