func aggregate(client *redis.Client, year int, month int) error { log.Println("Curating logs...") yearMonth := strconv.Itoa(year) + "-" + strconv.Itoa(month) key := yearMonth + "-*" keys, err := client.Keys(key).Result() if err != nil { log.Printf("Failed to set metric connection. ERR: %+v", err) return err } if len(keys) == 0 { return nil } events := getEvents(keys) monthlyEvent := struct { Events []string }{ events, } byteContent, err := json.Marshal(monthlyEvent) if err != nil { log.Println("Failed to set all event under single key. ERR: %+v", err) return err } err = client.Set(yearMonth, byteContent, 0).Err() if err != nil { log.Println("Failed to set all event under single key. ERR: %+v", err) return err } err = client.Del(keys...).Err() if err != nil { log.Println("Failed to delete all event in the past month. ERR: %+v", err) return err } return err }