Golang not enough arguments in call to client.Ping
Я новичок в Golang, но нужно срочно решить проблему
Выдает ошибку not enough arguments in call to client.Ping
Предыдущий разработчик уверяет, что все раньше работало, и это могло быть из-за обновления библиотеки
func Init() {
var err error
redisUrl = config.MustString("redisUrl")
redisPassword = config.MustString("redisPassword")
redisDb = config.MustInt("redisDb")
client = redis.NewClient(&redis.Options{
Addr: redisUrl,
Password: redisPassword,
DB: redisDb,
})
_, err = client.Ping().Result()
if err != nil {
logger.StdErr().Warn("Can`t connect to redis server! ", err.Error())
} else {
logger.StdOut().Info("Connected to redis!")
}
go _syncWithDB()
go _sendWorkToBroker()
}
Ответы (1 шт):
В корне проекта должен быть файл go.mod. Там нужно проверить версию загруженного модуля Redis. Скорей всего используется Redis последней версии.
Предположим код раньше работал, тогда версия должна быть <8, т.к. контексты в качестве параметров были добавлены в 8 версии.
Можно попробовать синхронизировать зависимости (чтобы убрать лишние)
go mod tidy
И добавить пакет заново (v6.15.9+incompatible)
go get github.com/go-redis/redis@latest
UPD:
Нужная версия пакета в go.mod отмечена как // indirect т.к. ещё не импортирована.
Проверьте импорты в файле где находится Init().
Скорей всего там github.com/go-redis/redis/v8 вместо github.com/go-redis/redis