使用
go-redis
我正在使用迭代器扫描大量键,如下所示
scanIterr := client.Scan(0, "*", 1000).Iterator()
for scanIterr.Next() {
key := scanIterr.Val()
fmt.Printf("%v\n", key)
if key == keyLookingFor {
kyeFound = true
return
}
}
我尝试用
valkey-go
做同样的事情,但最终得到以下代码
res := client.Do(ctx, client.B().Scan().Cursor(0).Match("*").Count(1000).Build())
se, _ := resss.AsScanEntry()
for _, key := range se.Elements {
fmt.Printf("%v\n", key)
if key == keyLookingFor {
kyeFound = true
return
}
}
我不认为这个 valkey 代码会像 redis 那样读取所有键。此外,valkey 变体一次读取所有键,但 go-redis 代码以 count 大小的批次读取。
有人可以建议使用
valkey-go
的代码的正确 go-redis
替代方案吗?
ValKey 组织的一部分,ValKey-Glide 的维护者。 首先,去 ValKey-Go 提出问题,我相信社区会努力实现缺失的内容。
此外,这对我来说很重要,:) ValKey-Glide 很快将与 Go 的 glide 一起进入 Beta 版,到 2 月/3 月我们将进入 GA 版。 如果您想成为 Beta 用户,我们很乐意听到!我建议继续关注 GA,我认为 Glide 将成为客户的黄金标准。
如果这对您来说很重要,请在 Glide 存储库中提出问题,即使您使用其他客户端也是如此。 除了我们多年来与客户合作所带来的成果之外,我们高度赞赏并希望了解用户的需求。