gpt4 book ai didi

go - 如果它已启动并正在运行以获取连接,如何使用 golang 查询 redis Db?

转载 作者:可可西里 更新时间:2023-11-01 11:47:57 24 4
gpt4 key购买 nike

我的 redis 数据库有大量的键,所以当我开始我的代码时,如果我执行信息持久化(在 redis CLI 上),它会给我以下信息,Loading: 1 意味着 redis 还没有准备好接受连接,while loading :0 表示 redis 已启动并正在运行并准备好进行连接。

loading:1
rdb_changes_since_last_save:1024
rdb_bgsave_in_progress:0
rdb_last_save_time:1530558451
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0

我与redis建立连接的代码如下:

var DefaultPool = NewPool("redis", 6379)

/*NewPool - create a new redis pool accessible at the given address */
func NewPool(host string, port int) *redis.Pool {
var address string
if os.Getenv("DOCKER") != "" {
address = fmt.Sprintf("%v:6379", host)
} else {
address = fmt.Sprintf("127.0.0.1:%v", port)
}
return &redis.Pool{
MaxIdle: 80,
MaxActive: 1000, // max number of connections
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", address)
if err != nil {
panic(err.Error())
}
return c, err
},
}
}

我如何不断检查加载值是否为 0。

最佳答案

获取信息:

 info, err := redis.String(c.Do("INFO", "persistence"))
if err != nil {
// handle error
}

检查加载字段:

 re := regexp.MustCompile("^loading:0$") // this can be done once and stored as a package level variable.
if re.MatchString(info) {
// loading is zero!
}

关于go - 如果它已启动并正在运行以获取连接,如何使用 golang 查询 redis Db?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51143439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com