diff --git a/cache/relation.go b/cache/relation.go index 007c254..f50f5be 100644 --- a/cache/relation.go +++ b/cache/relation.go @@ -98,18 +98,17 @@ func ClearOrphanRelationItems() error { if err != nil { return err } - keysNeedRemove := make([]string, 0) for _, item := range relationItems { - exist, err := Exists(item) + separated := strings.Split(item, ";") + exist, err := Exists(separated[1]) if err != nil { return err } if !exist { - keysNeedRemove = append(keysNeedRemove, item) + cmd := global.RedisConn.B().Srem().Key(key).Member(item).Build() + cmds = append(cmds, cmd) } } - 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 { diff --git a/main.go b/main.go index 2332316..5f10237 100644 --- a/main.go +++ b/main.go @@ -160,6 +160,7 @@ func DBConnectionKeepLive() { func RedisOrphanCleanup() { for range time.Tick(2 * time.Minute) { + log.Printf("[Cache] [Cleanup] Proceeding cleanup orphan keys.") err := cache.ClearOrphanRelationItems() if err != nil { log.Printf("[Cache] [Cleanup] Orphan keys clear failed: %v", err)