From 8c90d018c2bc77e54d8e50fd8cc3a2a324cb2456 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Mar 2026 11:48:39 +0800 Subject: [PATCH] =?UTF-8?q?ZADD=E5=8F=AA=E4=BF=9D=E5=AD=9810000=E4=B8=AA?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/db/Redis.go | 14 ++++++++++++++ src/server/test/fix_test.go | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/src/server/db/Redis.go b/src/server/db/Redis.go index b2b79719..31b9eea9 100644 --- a/src/server/db/Redis.go +++ b/src/server/db/Redis.go @@ -194,6 +194,20 @@ func RedisZAdd(key string, member string, score float64) { err := RdbWrite.ZAdd(ctx, key, redis.Z{Score: score, Member: member}).Err() if err != nil { log.Debug("redis zadd failed, err:%v\n", err) + return + } + const maxRankSize int64 = 10000 + count, err := RdbWrite.ZCard(ctx, key).Result() + if err != nil { + log.Debug("redis zcard failed, err:%v\n", err) + return + } + if count > maxRankSize { + removeCount := count - maxRankSize + err = RdbWrite.ZRemRangeByRank(ctx, key, 0, removeCount-1).Err() + if err != nil { + log.Debug("redis zremrangebyrank failed, err:%v\n", err) + } } } diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 12679938..e59763a0 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -281,3 +281,7 @@ func TestChampionShipCreateRobot(t *testing.T) { robot := game.CreateRobot(1.0, 1) fmt.Printf("Created Robot: %v\n", robot) } + +func TestRedisZset(t *testing.T) { + db.RedisZAdd("rank_user", "100001", 100) +}