diff --git a/cache/relation.go b/cache/relation.go index 1bb8ff9..007c254 100644 --- a/cache/relation.go +++ b/cache/relation.go @@ -98,16 +98,18 @@ func ClearOrphanRelationItems() error { if err != nil { return err } + keysNeedRemove := make([]string, 0) for _, item := range relationItems { exist, err := Exists(item) if err != nil { return err } if !exist { - cmd := global.RedisConn.B().Srem().Key(key).Member(item).Build() - cmds = append(cmds, cmd) + keysNeedRemove = append(keysNeedRemove, item) } } + cmd := global.RedisConn.B().Srem().Key(key).Member(keysNeedRemove...).Build() + cmds = append(cmds, cmd) } errs := global.RedisConn.DoMulti(global.Ctx, cmds...) firstErr, has := lo.Find(errs, func(elem rueidis.RedisResult) bool {