pogocache | bobek.cz

pogocache | bobek.cz


Josh Baker anuncioulink externo
um novo projeto github/tidwall/pogocachelink externo
.

Pogocache é um software de cache rápido criado do zero com foco em baixa latência e eficiência da CPU.

Mais rápido: Pogocache é mais rápido que Memcache, Valkey, Redis, Dragonfly e Garnet. Possui a menor latência por solicitação, proporcionando os tempos de resposta mais rápidos. Ele é otimizado para escalar de um a vários núcleos, oferecendo o melhor desempenho de thread único e multithread.

Incorporável: Opcionalmente, em vez de executar o Pogocache como um programa baseado em servidor, o arquivo pogocache.c independente pode ser compilado em software existente, ignorando a rede e acessando diretamente o cache de forma programática. A execução integrada fornece velocidade bruta, com mais de 100 milhões de operações por segundo.

Há uma seção de detalhes do designlink externo
no README. O componente crucial do desempenho é um hashmap fragmentado baseado em outro shardmap do projeto de Joshlink externo
. Ele também publicou ferramentas de benchmarkinglink externo
usado para comparação.

Outro recurso interessante é o suporte a diferentes APIs – ele emula os protocolos Redis e Memcached, além do protocolo psql wire e http simples.

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

❯ telnet localhost 9401
Connected to localhost.
KEYS *
*1
$5
mykey
GET mykey
$8
my value
QUIT
+OK
Connection closed by foreign host.

❯ psql -h localhost -p 9401
psql (17.5 (Debian 17.5-1), server 1.0.0-1-g9c2a173 (Pogocache))
WARNING: psql major version 17, server major version 1.0.
         Some psql features might not work.
Type "help" for help.

bobek=> GET mykey
bobek-> ;
  value
----------
 my value
(1 row)

bobek=> SET mykey 'another value';
SET 1
bobek=> \q

❯ curl http://localhost:9401/mykey
another value

E isso suporta tempo de vida nas chaves! Mesmo via interface http via ttl parâmetro:

❯ curl -X PUT -d "temporal flux" 'http://localhost:9401/mykey?ttl=10'
Stored

❯ curl http://localhost:9401/mykey ; echo -e '\n\n-----\n' ; sleep 10 ; curl -i http://localhost:9401/mykey
temporal flux

-----

HTTP/1.1 404 Not Found
Content-Length: 11
Connection: Close

Not Found

Josh tem outros projetos muito interessanteslink externo
em seu GitHub. Como azulejo38link externo
servidor geoespacial e de delimitação geográfica em tempo real:

Tile38 é um armazenamento de dados de geolocalização na memória de código aberto (licenciado pelo MIT), índice espacial e servidor de cerca geográfica em tempo real. Ele suporta uma variedade de tipos de objetos, incluindo pontos de latitude/longitude, caixas delimitadoras, blocos XYZ, Geohashes e GeoJSON.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *