Pular para o conteúdo

storh

storh é um armazenamento de dados independente PHP baseado em arquivos: documentos JSONC, um log segmentado somente de acréscimo e uma fila também somente de acréscimo. Ele armazena registros com IDs UUIDv7, oferece leituras em fluxo e consultas por cursor ou intervalo de tempo e usa operações atômicas do sistema de arquivos em vez de um servidor de banco de dados.

Quem chama fornece um diretório. storh não descobre caminhos do aplicativo, não lê constantes globais nem exige um adaptador de framework.

Mecanismos

  • DocStore armazena um arquivo JSONC por registro, com caminhos particionados por caracteres do grupo final do UUID. Ideal para leituras pontuais por ID e consultas por campos indexados.
  • SegmentedLog acrescenta registros aos arquivos de segmento como linhas JSON protegidas por um prefixo de tamanho em bytes e checksum. Ideal para fluxos com muitas inserções e leituras por cursor e intervalo de tempo.
  • Queue acrescenta eventos duráveis de tarefas e mantém o estado da fila na memória. Ideal para distribuir tarefas duráveis entre processos.

Não sabe qual deles atende à sua carga de trabalho? Consulte Como escolher um mecanismo para uma comparação lado a lado.

DocStore, SegmentedLog e Queue são aliases de classe das classes de implementação DocPerFileStore, SegmentedLogStore e LogQueue, então ambos os nomes se referem à mesma classe.

Requisitos

  • PHP 8.2 ou posterior
  • ext-json
  • um sistema de arquivos local ou montado com semântica de renomeação atômica dentro de um diretório

Próximos passos