#3517·go-redis

HSetEX 参数是否应该为 interface{}?

作者: natenho创建于 2025年9月12日更新于 2026年9月14日
标签Stalev10

这似乎是一个保存记忆的机会, 请让我知道你的想法。

HSet 接收“ 界面 ” 作为值 `HSet(ctx上下文)。 上下文、 密钥字符串、 值... 界面QQ) * 缩写

但是,HSetEX和WithArgs变体收到字符串:

HSetEX(ctx上下文)。 上下文、 密钥字符串、 字段和值... 字符串) * IntCmd' HSetEXWithArgs(ctx上下文)。 上下文、 密钥字符串、 选项 * HSetEX 选项、 字段和 Vales... string) * IntCmd'

例如,如果我们通过一个JSON []字节,我们需要将其转换为字符串,例如以下的例子:

jsonTags, 错误 := json. Marshal( tags)
c. HSetEX(ctx),"xx","tags",字符串(jsonTags))

而afaik,字符串(xxxx)会分配出一个新的字符串,这在热路径情景中可能是不可取的. 因此,也许最理想的是也接收这些功能的接口QQ/任意,因为pkg内部通过使用不安全指针确保了低内存消耗.