在 Golang 中,你可以使用 Redis 的 SCAN 命令和 DEL 命令来删除某个前缀的所有键。以下是一个示例代码:
package main
import (
"fmt"
"log"
"github.com/go-redis/redis/v8"
)
func main() {
// 创建 Redis 客户端
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379", // 根据实际情况修改地址和端口
Password: "", // 如果设置了密码,请填写对应的密码
DB: 0, // 根据实际情况修改数据库编号
})
defer client.Close()
prefix := "your_prefix:" // 修改为你想要删除的键的前缀
var cursor uint64 = 0
var keys []string
for {
var err error
keys, cursor, err = client.Scan(cursor, prefix+"*", 100).Result()
if err != nil {
log.Fatalf("Error scanning keys: %s", err)
return
}
if len(keys) == 0 {
break
}
_, delErr := client.Del(keys...).Result()
if delErr != nil {
log.Fatalf("Error deleting keys: %s", delErr)
return
}
fmt.Printf("%d keys deleted\n", len(keys))
}
fmt.Println("All matching keys have been deleted.")
}
以上代码中,我们使用 SCAN 命令扫描匹配给定前缀的键,并且每次最多返回100个键。然后,我们使用 DEL 命令一次性删除这些键。循环将继续进行,直到没有更多匹配的键为止。
请注意,你需要在代码中修改 Redis 的地址、端口、密码和数据库编号,并将 “your_prefix” 修改为你想要删除的键的前缀。确保导入了适当的 Redis 客户端库,例如 “github.com/go-redis/redis/v8”。
内容由零声教学AI助手提供,问题来源于学员提问