LRU на PHP — задача, которую, вроде бы, уже все кому не лень решили вдоль и поперёк. Канонический рецепт: HashMap + doubly linked list, — работает, читается, всем нравится. Но когда начинаешь мерить, оказывается, что большинство реализаций выдают 2–5 млн. ops/sec. Для веба это нормально, а вот для highload — уже нет. Особенно когда LRU — это не «где-то в кэше Redis», а фундамент Identity Map, который сидит прямо в hot path каждого запроса. Читать далее