TGViewer
msavin | Backend & PHP msavin | Backend & PHP @msavin_php · 794 subscribers
Post #33 1.7K
Shared Memory vs Redis: микросекунды против миллисекунд

Недавно столкнулся с бизнес-задачей, где нужно было передать данные между двумя PHP-скриптами с максимально возможной скоростью - счет шел на миллисекунды

Привычным решением было бы использовать Redis.
Там затраты были бы около 0.10 - 0.12 ms, если не надо открывать TCP соединение заново.
Если надо - то уже около 0.30 ms (тык тык тык).
И это если Redis стоит на локалхосте, иначе затраты могли бы вырасти до 3 порядков

Подход с разделением оперативной памяти в результате испытаний по моему бенчмарку дал 27 µs (~0.03 ms) задержки на передачу данных, что в примерно в 4 раза быстрее, чем Redis с persistent connection

В php оказалось готовое API и для семафоров, и для мьютексов, и для самой shared memory:

<?php

$key = 0xDEADBEEF;
$size = 1024;

$shm = shmop_open($key, 'c', 0666, $size);
$mutex = new SyncMutex('crypto_rate_mutex');

$mutex->lock();
shmop_write($shm, $payload, 0);
$mutex->unlock();


Есть и другие варианты IPC, но показались неподходящими

Как итог, сэкономили около 0.07 ms 😅. В обычном бэкенде и подумать смешно о таких оптимизациях, но в контексте приложений, где счет идет на миллисекунды помноженные на тысячи операций в день - это профит!
Docs Diagnosing latency issues Finding the causes of slow responses
  • 🔥 16
  • ❤ 3
  • 👏 2
More from @msavin_php
  1. Jul 3, 2026Я писал кучу всяких библиотек и утилит, но только одна "стрельнула" и на днях пробила 100к…
  2. Jun 8, 2026Выложил видос, где разбираю чужой тех на предмет ошибок, а не прохожу собес самолично. Как…
  3. Apr 8, 2026Неочевидное поведение variadic + named arguments Вот люблю пхп и ненавижу одновременно - п…
  4. Apr 7, 2026Новое видео про распределенные транзакции, saga pattern, tcc, 2pc, eventual & strong consi…
  5. Mar 27, 2026Зарелизил наконец-то ролик про кэш в сисдизе Если упустил что-то важное, дайте знать 🙂
  6. Feb 13, 2026Есть относительно популярный вопрос на собесах - про множественное наследование в пхп Тут…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →