go - 如何将结构的多个非空值传递给 golang 中的 hmset?

标签 go redis

引用这个: https://play.golang.org/p/0kYRHO5f7kE

如果我有 20 多个不同的字段,如果 Struct 中的一个字段为空,请不要更新它。只更新其中包含值的那些。

最好的前进方向是什么?我已经看到将可变输入传递给另一个函数,但我怎样才能优雅地做到这一点?

最佳答案

你可以使用this将您的结构字段转换为接口(interface)映射的库(可以使用来自 stdlib 的反射由您自己完成)然后循环它

pipe := redisClient.TxPipeline()

m := structs.Map(server)
for k, v := range m {
    pipe.HMSet(username, k, v)
}

cmder, err := pipe.Exec()
if err != nil {
    return nil, err
}

使用的redis驱动是go-redis

关于go - 如何将结构的多个非空值传递给 golang 中的 hmset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51568375/

相关文章:

redis - 如何使用 Redis 实现临时排行榜?

sql - 如何为多列创建唯一约束?

go - "Merge"字段两个相同类型的结构

戈朗 : How to implement the transfer method/function

c# - Redis 服务器和连接多个客户端

azure - 使用 Redlocks 获取 Azure Redis 缓存上的锁

concurrency - 数据未通过 channel 发送

string - 在golang中实现动态字符串

redis - 我可以在 Redis 的 lpush 操作上监听事件吗?

node.js - Nodejs redis 方法 BLPOP 阻塞事件循环