From 7e6dc6bb9f7152c1c03b2e58fb967b5327d8364c Mon Sep 17 00:00:00 2001 From: Pavel Tisnovsky Date: Mon, 29 Jun 2020 09:17:33 +0200 Subject: [PATCH] Example #7: set expiration time --- .../07_set_expiration/07_set_expiration.go | 64 +++++++++++++++++++ lesson7/redis/07_set_expiration/go.mod | 5 ++ 2 files changed, 69 insertions(+) create mode 100644 lesson7/redis/07_set_expiration/07_set_expiration.go create mode 100644 lesson7/redis/07_set_expiration/go.mod diff --git a/lesson7/redis/07_set_expiration/07_set_expiration.go b/lesson7/redis/07_set_expiration/07_set_expiration.go new file mode 100644 index 0000000..65789be --- /dev/null +++ b/lesson7/redis/07_set_expiration/07_set_expiration.go @@ -0,0 +1,64 @@ +package main + +import ( + "fmt" + "time" + + "github.com/go-redis/redis/v8" +) + +// adresa určující službu Redisu, která se má použít +const redisAddress = "localhost:6379" + +func main() { + // vytvoření nového klienta s předáním konfiguračních parametrů + client := redis.NewClient(&redis.Options{ + Addr: redisAddress, + Password: "", // no password set + DB: 0, // use default DB + }) + + // neměli bychom zapomenout na ukončení práce s klientem + defer func() { + err := client.Close() + if err != nil { + panic(err) + } + }() + + // získáme kontext + context := client.Context() + + // specifikace doby platnosti hodnoty uložené do Redisu + expiration, err := time.ParseDuration("10s") + if err != nil { + panic(err) + } + + // zápis hodnoty do databáze Redisu + err = client.Set(context, + "Seriál o jazyku Go", + "https://www.root.cz/serialy/programovaci-jazyk-go/", + expiration).Err() + if err != nil { + panic(err) + } + + for { + // přečtení hodnoty z databáze Redisu + address, err := client.Get(context, "Seriál o jazyku Go").Result() + + // vyhodnocení předchozí operace + switch { + case err == redis.Nil: + fmt.Println("no value found") + return + case err != nil: + panic(err) + default: + fmt.Println("Adresa:", address) + } + + time.Sleep(1 * time.Second) + } +} diff --git a/lesson7/redis/07_set_expiration/go.mod b/lesson7/redis/07_set_expiration/go.mod new file mode 100644 index 0000000..d95c829 --- /dev/null +++ b/lesson7/redis/07_set_expiration/go.mod @@ -0,0 +1,5 @@ +module redis1 + +go 1.13 + +require github.com/go-redis/redis/v8 v8.0.0-beta.5