Supondo que você esteja usando o popular pacote github.com/go-redis/redis, o valor de retorno de
HGetAll(key).Result()
é um map[string]string
(doc). A expressão someMap["has_ended"]
avalia a string vazia se a chave não estiver presente. Se hasEnded for true se e somente se a chave estiver presente com o valor "true", use o seguinte:
hasEnded := someMap["has_ended"] == "true"
Use strconv.ParseBool para manipular um intervalo mais amplo de valores possíveis (1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False):
hasEnded, err := strconv.ParseBool(someMap["has_ended"])
if err != nil {
// handle invalid value or missing value, possibly by setting hasEnded to false
}