Add basic structure

This commit is contained in:
2024-08-24 15:40:49 +02:00
parent 22ed3eb57c
commit 8cc84e75d0
4 changed files with 104 additions and 30 deletions

110
main.go
View File

@@ -1,38 +1,88 @@
import (
"context"
"fmt"
package main
"github.com/redis/go-redis/v9"
import (
"context"
"fmt"
"io"
"log"
"os"
"strings"
_ "embed"
"github.com/joho/godotenv"
"github.com/redis/go-redis/v9"
)
var Error *log.Logger
var Warning *log.Logger
func init() {
log.SetFlags(log.Lmicroseconds | log.Lshortfile)
logFile, err := os.Create("main.log")
if err != nil {
log.Printf("Error creating log file: %v", err)
return
}
logger := io.MultiWriter(os.Stdout, logFile)
log.SetOutput(logger)
Error = log.New(io.MultiWriter(logFile, os.Stderr, os.Stdout),
fmt.Sprintf("%sERROR:%s ", "\033[0;101m", "\033[0m"),
log.Lmicroseconds|log.Lshortfile)
Warning = log.New(io.MultiWriter(logFile, os.Stdout),
fmt.Sprintf("%sWarning:%s ", "\033[0;93m", "\033[0m"),
log.Lmicroseconds|log.Lshortfile)
}
//go:embed .env
var env string
var ctx = context.Background()
func ExampleClient() {
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
func main() {
envvar, err := godotenv.Parse(strings.NewReader(env))
if err != nil {
Error.Fatalf("Error parsing .env file: %v", err)
os.Exit(1)
}
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
redisHost, ok := envvar["REDIS_HOST"]
if !ok {
Error.Fatalf("REDIS_HOST not set in .env file")
return
}
redisPassword, ok := envvar["REDIS_PASSWORD"]
if !ok {
Error.Fatalf("REDIS_PASSWORD not set in .env file")
return
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
rdb := redis.NewClient(&redis.Options{
Addr: redisHost,
Password: redisPassword,
DB: 0,
})
val2, err := rdb.Get(ctx, "key2").Result()
if err == redis.Nil {
fmt.Println("key2 does not exist")
} else if err != nil {
panic(err)
} else {
fmt.Println("key2", val2)
}
// Output: key value
// key2 does not exist
}
err = rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
val2, err := rdb.Get(ctx, "key2").Result()
if err == redis.Nil {
fmt.Println("key2 does not exist")
} else if err != nil {
panic(err)
} else {
fmt.Println("key2", val2)
}
// Output: key value
// key2 does not exist
}