marcel-dempers 4b8f92df85 wip
2020-08-05 18:00:53 +10:00

66 lines
1.4 KiB
Go

package main
import (
"fmt"
"net/http"
"github.com/julienschmidt/httprouter"
log "github.com/sirupsen/logrus"
"os"
"github.com/go-redis/redis/v8"
"context"
"strconv"
)
var redis_host = os.Getenv("REDIS_HOST")
var redis_port = os.Getenv("REDIS_PORT")
var redis_password = os.Getenv("REDIS_PASSWORD")
var ctx = context.Background()
var rdb *redis.Client
var counter = 0
func main() {
r := redis.NewClient(&redis.Options{
Addr: redis_host + ":" + redis_port,
Password: redis_password, // no password set
DB: 0, // use default DB
})
rdb = r
router := httprouter.New()
router.GET("/", func(w http.ResponseWriter, r *http.Request, p httprouter.Params){
increment_redis_key(w,r,p)
})
fmt.Println("Running...")
log.Fatal(http.ListenAndServe(":80", router))
}
func increment_redis_key(writer http.ResponseWriter, request *http.Request, p httprouter.Params) {
val, err := rdb.Get(ctx, "counter").Result()
if err == redis.Nil {
err := rdb.Set(ctx, "counter", 1, 0).Err()
counter++
if err != nil {
panic(err)
}
} else if err != nil {
panic(err)
} else {
counter,_ = strconv.Atoi(val)
counter++
err := rdb.Set(ctx, "counter", counter, 0).Err()
if err != nil {
panic(err)
}
}
fmt.Fprint(writer, counter)
fmt.Println("counter", counter)
}