redis批量删除指定前缀key四种方法(收藏)

 更新时间:2024年03月02日 14:33:14   作者:阿亮在努力  
这篇文章主要介绍了redis批量删除指定前缀key四种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

redis批量删除指定前缀key四种方法

第一种:

Linux服务器上安装redis,然后进入到bin目录,执行如下命令

./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs  ./redis-cli -h IP  -p PORT -a PASSWORD del
IP:redis服务器的IP地址
PORT:redis服务的端口
PASSWORD :redis服务的密码
xargs:将所有数据变为单行
| :管道符,将上一次查询的结果作为下一次的参数

如下演示:密码没有就不填写

第二种:

用正则匹配出所有想要删除的key,然后转换为单行,然后复制到 del 命令后面

用到SublimeText3软件

个人感觉不好用

第三种:

使用连接工具进行分组

新版本的RedisDesktopManager目前支持通过分组批量删除key

然后 delete namespace

第四种:

使用jedis批量删除keys

方法将需要删除的key转换成数组传入jedis.del(keys)批量删除key

唯有努力,人生没有白走的路,每一步都算数

补充:

Redis 如何批量删除指定前缀的Key

批量删除指定前缀的Key有两中方法,一种是借助 redis-cli,另一种是通过 SCAN 命令来遍历所有匹配前缀的 key,并使用 DEL 命令逐个删除它们。

redis-cli

使用 Redis 自带的 redis-cli 命令行工具,你可以通过以下方式批量删除指定前缀的 key:

redis-cli KEYS "your_prefix*" | xargs redis-cli DEL

其中,your_prefix 是你要删除的 key 的前缀。

这个命令的作用是:

  • 使用 KEYS 命令获取所有匹配前缀的 key 列表。
  • 使用 xargs 命令将获取的 key 列表作为参数传递给后面的 DEL 命令,从而逐个删除这些 key。

需要注意的是,使用 KEYS 命令获取所有匹配前缀的 key 列表可能会在有大量 key 的情况下影响性能,因为它会阻塞 Redis 服务器的其他操作。在生产环境中,如果可能的话,最好使用迭代方式删除 key,例如使用 Lua 脚本或者编写程序来执行删除操作,以避免性能问题。

编码方式

在 Redis 中,除了上面的方法,要批量删除指定前缀的 key,你还可以使用 SCAN 命令来遍历所有匹配前缀的 key,并使用 DEL 命令逐个删除它们。但是,需要注意的是,SCAN 命令是一个游标迭代命令,它可以帮助你逐步遍历大量的 key,从而避免一次性获取所有 key 导致的性能问题。

以下是在 Redis 中批量删除指定前缀的 key 的示例代码,使用了 Go 的 github.com/go-redis/redis 包:

package main
import (
    "context"
	"fmt"
	"log"
	"strings"
	"github.com/go-redis/redis/v8"
)
func main() {
	ctx := context.Background()
	// 创建 Redis 客户端
	client := redis.NewClient(&redis.Options{
		Addr: "localhost:6379", // 你的 Redis 地址
		DB:   0,               // 使用的数据库编号
	})
	// 指定要删除的 key 的前缀
	prefix := "your_prefix"
	// 使用 SCAN 命令遍历匹配前缀的 key
	iter := client.Scan(ctx, 0, prefix+"*", 0).Iterator()
	for iter.Next(ctx) {
		key := iter.Val()
		// 使用 DEL 命令删除 key
		if err := client.Del(ctx, key).Err(); err != nil {
			log.Printf("Failed to delete key %s: %v", key, err)
		} else {
			fmt.Printf("Deleted key: %s\n", key)
		}
	}
	if err := iter.Err(); err != nil {
		log.Fatal(err)
	}
}

在上述代码中,就是先使用 SCAN 命令遍历所有匹配前缀的 key,然后逐个使用 DEL 命令删除它们。

到此这篇关于redis批量删除指定前缀key四种方法的文章就介绍到这了,更多相关redis批量删除指定前缀key内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React实现组件之间通信的几种常用方法

    React实现组件之间通信的几种常用方法

    在 React 中,组件之间的通信是构建复杂应用程序的核心部分,良好的组件间通信能够提高代码的可维护性和可读性,同时能够高效地管理应用状态,在这篇博客中,我们将探讨 React中几种常用的组件通信方法,并提供示例代码来帮助你理解,需要的朋友可以参考下
    2025-02-02
  • Redis Redisson lock和tryLock的原理分析

    Redis Redisson lock和tryLock的原理分析

    这篇文章主要介绍了Redis Redisson lock和tryLock的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Redis深入了解内存淘汰与事务操作

    Redis深入了解内存淘汰与事务操作

    将Redis用作缓存时,Redis数据存在内存中,如果内存空间用满,就会自动驱逐老的数据。Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断
    2022-07-07
  • 还不懂Redis?看完这个趣味小故事就明白了!

    还不懂Redis?看完这个趣味小故事就明白了!

    这篇文章主要用趣味性的方法讲解了redis是什么?并且和MYSQL的区别是什么,有对redis不太懂的小伙伴可以来看一下吧
    2020-12-12
  • Redis快速表、压缩表和双向链表(重点介绍quicklist)

    Redis快速表、压缩表和双向链表(重点介绍quicklist)

    这篇文章主要介绍了Redis快速表、压缩表和双向链表(重点介绍quicklist),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • redis执行lua脚本的实现方法

    redis执行lua脚本的实现方法

    redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到redis中执行。本文就介绍了redis执行lua脚本的实现方法,感兴趣的可以了解一下
    2021-11-11
  • redis分布式ID解决方案示例详解

    redis分布式ID解决方案示例详解

    这篇文章主要为大家介绍了redis分布式ID解决方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • redission分布式锁防止重复初始化问题

    redission分布式锁防止重复初始化问题

    这篇文章主要介绍了redission分布式锁防止重复初始化问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Redis配置文件代码讲解

    Redis配置文件代码讲解

    在本篇文章里小编给大家整理的是一篇关于Redis配置文件的说明内容,需要的朋友们可以学习下。
    2020-03-03
  • 浅谈redission锁的默认失效时间

    浅谈redission锁的默认失效时间

    Redisson是一个基于Redis的Java驻留库,提供了许多分布式对象和服务,包括分布式锁,本文主要介绍了浅谈redission锁的默认失效时间, 具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论