Skip to content

Commit

Permalink
增加影响行数
Browse files Browse the repository at this point in the history
  • Loading branch information
steden committed Oct 26, 2024
1 parent d6b4874 commit e9c9aaf
Show file tree
Hide file tree
Showing 6 changed files with 195 additions and 10 deletions.
63 changes: 59 additions & 4 deletions redisHash.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import (
"context"
"encoding/json"
"errors"
"reflect"
"strings"

"github.com/farseer-go/collections"
"github.com/farseer-go/fs/flog"
"github.com/farseer-go/fs/parse"
"github.com/farseer-go/fs/types"
"github.com/go-redis/redis/v8"
"reflect"
"strings"
)

type redisHash struct {
Expand All @@ -27,6 +28,9 @@ func (receiver *redisHash) HashSetEntity(key string, field string, entity any) e
}

err = receiver.GetClient().HSet(context.Background(), key, field, string(jsonContent)).Err()
if err == nil {
traceDetail.SetRows(1)
}
return err
}

Expand All @@ -39,6 +43,10 @@ func (receiver *redisHash) HashSet(key string, fieldValues ...any) error {
traceDetail := receiver.traceManager.TraceRedis("HashSet", key, strings.Join(fields, ","))
err := receiver.GetClient().HSet(context.Background(), key, fieldValues...).Err()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(len(fields))
}
return err
}

Expand All @@ -49,7 +57,12 @@ func (receiver *redisHash) HashGet(key string, field string) (string, error) {
if errors.Is(err, redis.Nil) {
err = nil
}

defer func() { traceDetail.End(err) }()

if err == nil && result != "" {
traceDetail.SetRows(1)
}
return result, err
}

Expand All @@ -66,6 +79,8 @@ func (receiver *redisHash) HashGets(key string, fields ...string) ([]string, err
for _, v := range result {
arr = append(arr, parse.ToString(v))
}

traceDetail.SetRows(len(result))
return arr, err
}

Expand All @@ -77,6 +92,8 @@ func (receiver *redisHash) HashGetAll(key string) (map[string]string, error) {
err = nil
}
defer func() { traceDetail.End(err) }()

traceDetail.SetRows(len(result))
return result, err
}

Expand All @@ -92,8 +109,13 @@ func (receiver *redisHash) HashToEntity(key string, field string, entity any) (b
if err != nil {
return false, err
}
err = json.Unmarshal([]byte(jsonContent), entity)

if err == nil {
traceDetail.SetRows(1)
}
// 反序列
return true, json.Unmarshal([]byte(jsonContent), entity)
return true, err
}

func (receiver *redisHash) HashToArray(key string, arrSlice any) error {
Expand All @@ -120,6 +142,10 @@ func (receiver *redisHash) HashToArray(key string, arrSlice any) error {
newArr = reflect.Append(newArr, reflect.ValueOf(item).Elem())
}
arrVal.Set(newArr)

if err == nil {
traceDetail.SetRows(len(result))
}
return nil
}

Expand All @@ -141,6 +167,10 @@ func (receiver *redisHash) HashToListAny(key string, itemType reflect.Type) (col
_ = json.Unmarshal([]byte(vJson), item)
lst.Add(reflect.ValueOf(item).Elem().Interface())
}

if err == nil {
traceDetail.SetRows(len(result))
}
return lst, nil
}

Expand All @@ -160,6 +190,10 @@ func (receiver *redisHash) HashDel(key string, fields ...string) (bool, error) {

result, err := receiver.GetClient().HDel(context.Background(), key, fields...).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result > 0, err
}

Expand All @@ -168,14 +202,23 @@ func (receiver *redisHash) HashCount(key string) int {

result, err := receiver.GetClient().HLen(context.Background(), key).Uint64()
defer func() { traceDetail.End(err) }()
return int(result)

rows := parse.ToInt(result)
if err == nil {
traceDetail.SetRows(rows)
}
return rows
}

func (receiver *redisHash) HashIncrInt(key string, field string, value int) (int, error) {
traceDetail := receiver.traceManager.TraceRedis("HashIncrInt", key, field)

result, err := receiver.GetClient().HIncrBy(context.Background(), key, field, parse.Convert(value, int64(value))).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return parse.ToInt(result), err
}

Expand All @@ -184,6 +227,10 @@ func (receiver *redisHash) HashIncrInt64(key string, field string, value int64)

result, err := receiver.GetClient().HIncrBy(context.Background(), key, field, value).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return result, err
}

Expand All @@ -192,6 +239,10 @@ func (receiver *redisHash) HashIncrFloat32(key string, field string, value float

result, err := receiver.GetClient().HIncrByFloat(context.Background(), key, field, float64(value)).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return parse.ToFloat32(result), err
}

Expand All @@ -200,5 +251,9 @@ func (receiver *redisHash) HashIncrFloat64(key string, field string, value float

result, err := receiver.GetClient().HIncrByFloat(context.Background(), key, field, value).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return result, err
}
10 changes: 10 additions & 0 deletions redisKey.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"strings"
"time"

"github.com/farseer-go/fs/parse"
)

type redisKey struct {
Expand All @@ -15,6 +17,10 @@ func (receiver *redisKey) SetTTL(key string, d time.Duration) (bool, error) {

result, err := receiver.GetClient().Expire(context.Background(), key, d).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return result, err
}

Expand All @@ -31,6 +37,10 @@ func (receiver *redisKey) Del(keys ...string) (bool, error) {

result, err := receiver.GetClient().Del(context.Background(), keys...).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result > 0, err
}

Expand Down
43 changes: 39 additions & 4 deletions redisList.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ package redis

import (
"context"
"github.com/go-redis/redis/v8"
"strings"
"time"

"github.com/farseer-go/fs/parse"
"github.com/go-redis/redis/v8"
)

type redisList struct {
Expand All @@ -16,6 +18,10 @@ func (receiver *redisList) ListPushRight(key string, values ...any) (bool, error

result, err := receiver.GetClient().RPush(context.Background(), key, values).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result > 0, err
}

Expand All @@ -24,6 +30,10 @@ func (receiver *redisList) ListPushLeft(key string, values ...any) (bool, error)

result, err := receiver.GetClient().LPush(context.Background(), key, values).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result > 0, err
}

Expand All @@ -32,17 +42,22 @@ func (receiver *redisList) ListSet(key string, index int64, value any) (bool, er

result, err := receiver.GetClient().LSet(context.Background(), key, index, value).Result()
defer func() { traceDetail.End(err) }()
if result == "OK" {
return true, err

if err == nil {
traceDetail.SetRows(1)
}
return false, err
return result == "OK", err
}

func (receiver *redisList) ListRemove(key string, count int64, value any) (bool, error) {
traceDetail := receiver.traceManager.TraceRedis("ListRemove", key, "")

result, err := receiver.GetClient().LRem(context.Background(), key, count, value).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result > 0, err
}

Expand All @@ -54,6 +69,10 @@ func (receiver *redisList) ListCount(key string) (int64, error) {
err = nil
}
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(parse.ToInt(result))
}
return result, err
}

Expand All @@ -65,6 +84,10 @@ func (receiver *redisList) ListRange(key string, start int64, stop int64) ([]str
err = nil
}
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(len(result))
}
return result, err
}

Expand All @@ -73,6 +96,10 @@ func (receiver *redisList) ListLeftPop(timeout time.Duration, keys ...string) ([

result, err := receiver.GetClient().BLPop(context.Background(), timeout, keys...).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(len(result))
}
return result, err
}

Expand All @@ -81,6 +108,10 @@ func (receiver *redisList) ListRightPop(timeout time.Duration, keys ...string) (

result, err := receiver.GetClient().BRPop(context.Background(), timeout, keys...).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(len(result))
}
return result, err
}

Expand All @@ -89,5 +120,9 @@ func (receiver *redisList) ListRightPopPush(source, destination string, timeout

result, err := receiver.GetClient().BRPopLPush(context.Background(), source, destination, timeout).Result()
defer func() { traceDetail.End(err) }()

if err == nil {
traceDetail.SetRows(1)
}
return result, err
}
Loading

0 comments on commit e9c9aaf

Please sign in to comment.