storh
storh — автономное хранилище данных на PHP на основе файлов: документы JSONC, сегментированный журнал с добавлением в конец и очередь с добавлением в конец. Оно хранит записи с идентификаторами UUIDv7, поддерживает потоковое чтение, запросы по курсору и временному диапазону, а также использует атомарные операции файловой системы вместо сервера базы данных.
Вызывающая сторона указывает каталог. storh не ищет пути приложения, не читает глобальные константы и не требует адаптера фреймворка.
Механизмы хранения
DocStoreхранит отдельный файл JSONC для каждой записи, распределяя пути по каталогам по последним символам UUID. Лучше всего подходит для точечного чтения по идентификатору и запросов по индексированным полям.SegmentedLogдобавляет записи в файлы сегментов в виде строк JSON с префиксом длины в байтах и контрольной суммы. Лучше всего подходит для потоков с частым добавлением, чтением по курсору и за временной диапазон.Queueдобавляет долговечные события задач и хранит состояние очереди в памяти. Лучше всего подходит для надежной передачи задач между процессами.
Не уверены, какой вариант подойдет для вашей нагрузки? Сравните их бок о бок в разделе Выбор механизма хранения.
DocStore, SegmentedLog и Queue — псевдонимы классов для классов реализации DocPerFileStore, SegmentedLogStore и LogQueue, поэтому оба имени ссылаются на один и тот же класс.
Требования
- PHP 8.2 или новее
ext-json- локальная или смонтированная файловая система с поддержкой атомарного переименования внутри каталога