From cf83e117788ad89c0b37a549511e7fec44759071 Mon Sep 17 00:00:00 2001 From: Amnesia <7299924@qq.com> Date: Fri, 13 Mar 2026 15:32:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E5=96=84redis=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/middleware/redis/cache.go | 6 ++++++ backend/internal/middleware/redis/zset.go | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/backend/internal/middleware/redis/cache.go b/backend/internal/middleware/redis/cache.go index 71aed68..d8bae7b 100644 --- a/backend/internal/middleware/redis/cache.go +++ b/backend/internal/middleware/redis/cache.go @@ -3,6 +3,8 @@ package redis import ( "context" "time" + + "github.com/redis/go-redis/v9" ) func (c *Client) GetBytes(ctx context.Context, key string) ([]byte, error) { @@ -16,3 +18,7 @@ func (c *Client) SetBytes(ctx context.Context, key string, value []byte, ttl tim func (c *Client) Del(ctx context.Context, key string) error { return c.rdb.Del(ctx, key).Err() } + +func (c *Client) MGet(cacheCtx context.Context, cacheKeys ...string) *redis.SliceCmd { + return c.rdb.MGet(cacheCtx, cacheKeys...) +} diff --git a/backend/internal/middleware/redis/zset.go b/backend/internal/middleware/redis/zset.go index 9a4b6b4..6ec69eb 100644 --- a/backend/internal/middleware/redis/zset.go +++ b/backend/internal/middleware/redis/zset.go @@ -2,6 +2,7 @@ package redis import ( "context" + "errors" "time" redis "github.com/redis/go-redis/v9" @@ -14,6 +15,27 @@ func (c *Client) ZincrBy(ctx context.Context, key string, member string, score f return c.rdb.ZIncrBy(ctx, key, score, member).Err() } +func (c *Client) ZAdd(ctx context.Context, key string, members ...redis.Z) error { + if c == nil || c.rdb == nil { + return nil + } + return c.rdb.ZAdd(ctx, key, members...).Err() +} + +func (c *Client) ZRemRangeByRank(ctx context.Context, key string, start int64, stop int64) error { + if c == nil || c.rdb == nil { + return nil + } + return c.rdb.ZRemRangeByRank(ctx, key, start, stop).Err() +} + +func (c *Client) ZRangeWithScores(ctx context.Context, key string, start int64, stop int64) ([]redis.Z, error) { + if c == nil || c.rdb == nil { + return nil, errors.New("redis client not initialized") + } + return c.rdb.ZRangeWithScores(ctx, key, start, stop).Result() +} + func (c *Client) Expire(ctx context.Context, key string, ttl time.Duration) error { if c == nil || c.rdb == nil { return nil