如何优雅地在golang中创建配置文件?

Sha*_*y_C 6 config go redis

我是go lang的新手,我只是想写一个程序来管理我的redis实例,这样我就可以用特定的配置文件创建一个redis,但我不知道如何优雅地为redis实例创建配置文件.

之前我找到了"文字/模板",这是个好主意吗?

非常感谢

Von*_*onC 7

这取决于您要为这些配置支持的文件格式.

一个能够读取大部分格式的库(从简单的ini文件到JSON文件)将是spf13/viper:

Viper是针对应用程序的完整配置解决方案.它被设计为在应用程序中工作以处理所有类型的配置.它支持

  • 设置默认值
  • 从yaml,toml和json配置文件中读取
  • 从环境变量中读取
  • 从远程配置系统读取(Etcd或Consul)
  • 从命令行标志读取
  • 设置显式值


Cer*_*món 4

Redis 配置文件具有简单的文本格式。您可以使用 fmt 包生成配置文件:

fmt.Fprintf(w, "pidfile %s\n", pidFile)
fmt.Fprintf(w, "port %d\n", port)
Run Code Online (Sandbox Code Playgroud)

其中wio.Writer输出。

文本/模板包也是一个可行的选择。给定模板

pidfile {{.PidFile}}
port {{.Port}}
Run Code Online (Sandbox Code Playgroud)

你可以执行它

t.Execute(w, map[string]interface{}{
   "PidFile": pidFile,
   "Port": port,
})
Run Code Online (Sandbox Code Playgroud)