player 后使用) * 登录/信息变更时需调用 deletePlayerByUsername 失效 */ public static function setPlayerByUsername(string $username, array $playerRow): bool { if ($username === '' || empty($playerRow)) { return false; } $ttl = self::playerCacheTtl(); if ($ttl <= 0) { return true; } $key = self::playerCachePrefix() . $username; return Cache::set($key, json_encode($playerRow), $ttl); } /** 按 username 取缓存玩家,未命中返回 null */ public static function getPlayerByUsername(string $username): ?array { if ($username === '') { return null; } if (self::playerCacheTtl() <= 0) { return null; } $key = self::playerCachePrefix() . $username; $val = Cache::get($key); if ($val === null || $val === '') { return null; } $data = json_decode((string) $val, true); return is_array($data) ? $data : null; } /** 退出登录或玩家信息变更时删除玩家缓存 */ public static function deletePlayerByUsername(string $username): bool { if ($username === '') { return false; } $key = self::playerCachePrefix() . $username; return Cache::delete($key); } }