Как запросить Redis Db с помощью golang, если он работает и работает для подключения? - PullRequest
0 голосов
/ 02 июля 2018

У моего redis db огромное количество ключей, поэтому, когда я запускаю свой код, в это время, если я сохраняю информацию (на redis CLI), он выдает мне следующее: Загрузка: 1 означает, что redis не готов к подключению , при загрузке: 0 означает повторный запуск и готовность к подключению.

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.

1 Ответ

0 голосов
/ 03 июля 2018

Получить информацию:

 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!
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...