| 123456789101112131415161718192021222324252627282930 |
- package cache
- import (
- "context"
- "time"
- "github.com/go-redis/redis/v8"
- )
- var C *redis.Client
- func Init(addr string) {
- C = redis.NewClient(&redis.Options{
- Addr: addr,
- DB: 12,
- })
- }
- func GetOrSet(ctx context.Context, key string, ttl time.Duration, fetch func() (interface{}, error)) (interface{}, error) {
- val, err := C.Get(ctx, key).Result()
- if err == nil {
- return val, nil
- }
- result, err := fetch()
- if err != nil {
- return nil, err
- }
- C.Set(ctx, key, result, ttl)
- return result, nil
- }
|