db_redis.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package manager
  2. import (
  3. "context"
  4. "github.com/go-redis/redis/v8"
  5. )
  6. type redisAdapter struct {
  7. db *redis.Client
  8. }
  9. var ctx = context.Background()
  10. func (b *redisAdapter) InitBucket(bucket string) (err error) {
  11. // no-op
  12. return
  13. }
  14. func (b *redisAdapter) Get(bucket string, key string) (v []byte, err error) {
  15. var val string
  16. val, err = b.db.HGet(ctx, bucket, key).Result()
  17. v = []byte(val)
  18. return
  19. }
  20. func (b *redisAdapter) GetAll(bucket string) (m map[string][]byte, err error) {
  21. var val map[string]string
  22. val, err = b.db.HGetAll(ctx, bucket).Result()
  23. if err == nil && val != nil {
  24. m = make(map[string][]byte)
  25. for k, v := range val {
  26. m[k] = []byte(v)
  27. }
  28. }
  29. return
  30. }
  31. func (b *redisAdapter) Put(bucket string, key string, value []byte) error {
  32. _, err := b.db.HSet(ctx, bucket, key, string(value)).Result()
  33. return err
  34. }
  35. func (b *redisAdapter) Delete(bucket string, key string) error {
  36. _, err := b.db.HDel(ctx, bucket, key).Result()
  37. return err
  38. }
  39. func (b *redisAdapter) Close() error {
  40. return b.db.Close()
  41. }