Repolode
tidwall

tidwall/pogocache

Servidor de cache de baixa latência escrito em C, compatível com os protocolos Memcache, Redis/Valkey, HTTP e Postgres, e que pode ser integrado como um único arquivo C.

Alternativa open source a:RedisMemcached

Estrelas
2,524
Forks
76
Issues abertas
18
Último commit
há 3 meses

O que é?

Pogocache é um servidor de cache focado em baixa latência e baixo uso de CPU por requisição. Ele aceita conexões de clientes por vários protocolos de rede, incluindo Memcache, Valkey/Redis (RESP), HTTP e Postgres, permitindo que ferramentas existentes, como curl, redis-cli, psql e bibliotecas cliente comuns, se conectem sem alterações.

Também pode ser executado integrado à aplicação. O arquivo independente pogocache.c pode ser compilado diretamente em um programa C, permitindo que a aplicação chame as funções de cache sem passar pela rede. Os recursos do servidor incluem TLS em uma porta separada, autenticação por senha, limites de memória configuráveis com eviction, persistência opcional em arquivo e hashmaps sharded com locking por shard.

O projeto é voltado para Linux de 64 bits e macOS, e foi escrito em C. O README inclui tabelas de benchmark que comparam o projeto com Redis, Valkey, Dragonfly, Garnet e Memcache em um único tipo de instância da AWS; esses números vêm da configuração de testes do próprio autor.

Recursos principais

  • 01Aceita os protocolos de rede Memcache, RESP (Valkey/Redis), HTTP e Postgres em um único servidor.
  • 02Pode ser compilado como um único arquivo em um programa C para cache no próprio processo.
  • 03Oferece suporte a TLS, autenticação por senha e maxmemory configurável com eviction.
  • 04Oferece persistência opcional em arquivo e expiração de chaves com TTL.
  • 05Usa um hashmap sharded com spinlocks por shard e event loops com epoll/kqueue.

Casos de uso

  • Substituir uma instância Redis ou Memcache em um serviço sensível à latência, sem alterar o código cliente.
  • Integrar um cache key-value rápido diretamente a uma aplicação C ou C++.
  • Usar curl ou psql como uma forma rápida de consultar e definir valores no cache durante o desenvolvimento.

Início rápido

  1. 1

    Compile o programa pogocache a partir do código-fonte

    make
  2. 2

    Inicie o servidor na porta 9401 do localhost

    ./pogocache
  3. 3

    Conecte-se com curl para armazenar e ler um valor

    curl -X PUT -d "my value" http://localhost:9401/mykey

Antes de usar

  • Foi projetado e testado apenas para Linux de 64 bits e macOS.
  • O README não documenta o suporte ao Windows.

Tópicos

Perguntas frequentes

O que é pogocache?
Servidor de cache de baixa latência escrito em C, compatível com os protocolos Memcache, Redis/Valkey, HTTP e Postgres, e que pode ser integrado como um único arquivo C. Pogocache é um servidor de cache focado em baixa latência e baixo uso de CPU por requisição. Ele aceita conexões de clientes por vários protocolos de rede, incluindo Memcache, Valkey/Redis (RESP), HTTP e Postgres, permitindo que ferramentas existentes, como curl, redis-cli, psql e bibliotecas cliente comuns, se conectem sem alterações.
pogocache é gratuito? Qual é a licença?
pogocache é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
pogocache ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de pogocache foi em 5 de ago. de 2026.
Para que posso usar pogocache?
Substituir uma instância Redis ou Memcache em um serviço sensível à latência, sem alterar o código cliente. Integrar um cache key-value rápido diretamente a uma aplicação C ou C++. Usar curl ou psql como uma forma rápida de consultar e definir valores no cache durante o desenvolvimento.
Como instalar pogocache?
Compile o programa pogocache a partir do código-fonte: make Inicie o servidor na porta 9401 do localhost: ./pogocache Conecte-se com curl para armazenar e ler um valor: curl -X PUT -d "my value" http://localhost:9401/mykey
Onde consigo pogocache?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tidwall/pogocache

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados