43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package gfredis
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
func (r *Redis) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) error {
|
|
cmd := r.rdb.Set(ctx, key, gconv.String(value), expiration)
|
|
return cmd.Err()
|
|
}
|
|
|
|
func (r *Redis) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) (bool, error) {
|
|
cmd := r.rdb.SetNX(ctx, key, gconv.String(value), expiration)
|
|
return cmd.Val(), cmd.Err()
|
|
}
|
|
|
|
func (r *Redis) Get(ctx context.Context, key string) (*g.Var, error) {
|
|
cmd := r.rdb.Get(ctx, key)
|
|
if cmd.Err() == redis.Nil {
|
|
return g.NewVar(nil), nil
|
|
}
|
|
return g.NewVar(cmd.Val()), cmd.Err()
|
|
}
|
|
|
|
func (r *Redis) UpdateExpire(ctx context.Context, key string, expiration time.Duration) (bool, error) {
|
|
cmd := r.rdb.Expire(ctx, key, expiration)
|
|
return cmd.Val(), cmd.Err()
|
|
}
|
|
|
|
func (r *Redis) Remove(ctx context.Context, key string) (bool, error) {
|
|
cmd := r.rdb.Del(ctx, key)
|
|
return cmd.Val() > 0, cmd.Err()
|
|
}
|
|
func (r *Redis) Del(ctx context.Context, key string) (int64, error) {
|
|
cmd := r.rdb.Del(ctx, key)
|
|
return cmd.Val(), cmd.Err()
|
|
}
|