ZBLOG

ERR wrong number of arguments for 'del' command

抱歉,我之前给出的示例代码中可能存在错误。正确的 Redis DEL 命令使用方式是将键作为参数传递给 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 keysDeleted int64 = 0

	for {
        var keys []string
        
        var err error

        keys, cursor, err = client.Scan(cursor, prefix+"*", 100).Result()
        
        if err != nil {
            log.Fatalf("Error scanning keys: %s", err)
            return
        }

        for _, key := range keys {
            delResult := client.Del(key)
            
            if delResult.Err() != nil {
                log.Printf("Error deleting key %s: %s", key, delResult.Err())
            } else {
                keysDeleted += delResult.Val()
            }
        }

        if cursor == 0 {
            break
        }
    }

	fmt.Printf("%d keys deleted\n", keysDeleted)
	fmt.Println("All matching keys have been deleted.")
}

再次抱歉给你带来的困惑,这个修正后的代码应该可以正确执行 Redis 的 DEL 命令来删除匹配键。请根据实际情况修改 Redis 的地址、端口、密码和数据库编号,并将 “your_prefix” 修改为你想要删除的键的前缀。

谢谢指出错误,并感谢你的理解和耐心!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=13565

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?