为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 redis 中获取价值。在戈朗戈雷迪斯的Cmder?

如何从 redis 中获取价值。在戈朗戈雷迪斯的Cmder?

白猪掌柜的 2022-09-12 16:21:33
temp1Ctx, temp1Cancer := lib.GetTimeoutCtx(ctx)    pipeline := util.RedisClusterClient.Pipeline()    for _, key := range userIdRedisSlice {        pipeline.HMGet(temp1Ctx, key, userIdRedisFeature...)    }    userProfile, err := pipeline.Exec(temp1Ctx)    if err != nil {        lib.ErrorLogger.Errorf(": %v\n", err)    }    defer temp1Cancer()    // lib.ErrorLogger.Infof(": %v", userProfile)    for _, redisCmd := range userProfile {        //TODO    }如何从中获取价值?我找不到任何文件。
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

保留返回的具体命令类型HMGet


temp1Ctx, temp1Cancer := lib.GetTimeoutCtx(ctx)

pipeline := util.RedisClusterClient.Pipeline()

cmds := []*redis.SliceCmd{}

for _, key := range userIdRedisSlice {

    cmds = append(cmds, pipeline.HMGet(temp1Ctx, key, userIdRedisFeature...))

}

if _, err := pipeline.Exec(temp1Ctx); err != nil {

    lib.ErrorLogger.Errorf(": %v\n", err)

}

defer temp1Cancer()


for _, c := range cmds {

    // use c.Result()

    // or use c.Scan

}

或类型断言/类型切换 Cmder 到具体类型。


temp1Ctx, temp1Cancer := lib.GetTimeoutCtx(ctx)

pipeline := util.RedisClusterClient.Pipeline()

for _, key := range userIdRedisSlice {

    pipeline.HMGet(temp1Ctx, key, userIdRedisFeature...)

}

userProfile, err := pipeline.Exec(temp1Ctx)

if err != nil {

    lib.ErrorLogger.Errorf(": %v\n", err)

}

defer temp1Cancer()


for _, redisCmd := range userProfile {

    switch c := redisCmd.(type) {

    case *redis.SliceCmd:

          // use c.Result()

          // or c.Scan()

    }

}


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 57 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信