Как можно оптимизировать php код,который вытягивает протоколы через get file, чтобы при обновлении страницы не вытягивали протоколы,а они как-то кешировались или что можна придумать?
Если речь про file_get_contents() с чтением данных с УРЛ, а не из локального файла - то самый простой вариант - сохранять прочтенные данные в локальный файл. Локальные файлы - прекрасный вариант кэширования.
Если надо следить за временем жизни данных - можно ориентироваться на timestamp модификации файла - filemtime().
Крайне желательно использовать flock на этот файл, чтобы в него не писали одновременно несколько потоков.