diff --git a/domain/cache/room_c/userRoomVisit.go b/domain/cache/room_c/userRoomVisit.go index 53ada6857fc52328c53547fa3635df798c13f46d..720cfba3b686aa8af119c65a2e674bc180dea0c2 100644 --- a/domain/cache/room_c/userRoomVisit.go +++ b/domain/cache/room_c/userRoomVisit.go @@ -8,6 +8,7 @@ import ( "git.hilo.cn/hilo-common/resource/redisCli" "github.com/bluele/gcache" redis2 "github.com/go-redis/redis/v8" + "github.com/spf13/cast" "hilo-group/_const/redis_key" "strconv" "time" @@ -86,6 +87,20 @@ func MGetRoomVisitCount(groupIds []string) (map[string]string, error) { if len(groupIds) <= 0 { return visit, nil } + // 用redisCluster中的zset代替,只是取出大于100的 + zKey := redis_key.GetPrefixRoomVisitCountZset() + zRes, err := redisCli.GetClusterRedis().ZRevRangeByScoreWithScores(context.Background(), zKey, &redis2.ZRangeBy{ + Min: fmt.Sprintf("%d", 100), // 100人数以上的。 + Max: "+inf", + }).Result() + if err != nil { + mylogrus.MyLog.Errorf("MGetRoomVisitCount zset fail:%v", err) + return visit, err + } + for _, v := range zRes { + visit[cast.ToString(v.Member)] = cast.ToString(v.Score) + } + return visit, nil var miss []string for _, groupId := range groupIds {