Repolode
tidwall

tidwall/pogocache

Memcache、Redis/Valkey、HTTP、Postgresのプロトコルに対応し、単一のCファイルとして組み込める、低レイテンシなC製キャッシュサーバーです。

代替できる製品:RedisMemcached

スター
2,524
フォーク
76
未解決の Issue
18
最終コミット
3 か月前

これは何?

Pogocacheは、リクエストあたりのレイテンシとCPU使用量の低減を重視したキャッシュサーバーです。Memcache、Valkey/Redis(RESP)、HTTP、Postgresなど複数のワイヤープロトコルで接続を受け付けるため、curl、redis-cli、psql、一般的なクライアントライブラリなどの既存ツールを変更せずに接続できます。

アプリケーションに組み込んで実行することもできます。自己完結したpogocache.cファイルをCプログラムに直接コンパイルすれば、ネットワークを介さずにキャッシュ関数を呼び出せます。サーバー機能には、別ポートでのTLS、パスワード認証、退避処理を伴う設定可能なメモリ上限、任意のファイル永続化、シャードごとのロックを使うシャーデッドハッシュマップがあります。

このプロジェクトは64ビット版LinuxとmacOSを対象とし、Cで書かれています。READMEには、単一のAWSインスタンスタイプ上でRedis、Valkey、Dragonfly、Garnet、Memcacheと比較したベンチマーク表が掲載されています。数値は作者自身のテスト環境で得られたものです。

主な機能

  • 011つのサーバーでMemcache、RESP(Valkey/Redis)、HTTP、Postgresのワイヤープロトコルを受け付けます。
  • 02単一ファイルとしてCプログラムにコンパイルでき、プロセス内キャッシュとして利用できます。
  • 03TLS、パスワード認証、退避処理を伴う設定可能なmaxmemoryに対応しています。
  • 04任意のファイル永続化と、TTLによるキーの有効期限を利用できます。
  • 05シャードごとのスピンロックを使うシャーデッドハッシュマップと、epoll/kqueueのイベントループを採用しています。

ユースケース

  • クライアントコードを変更せずに、レイテンシに敏感なサービスのRedisまたはMemcacheを置き換える。
  • 高速なキーバリューキャッシュをCまたはC++アプリケーションに直接組み込む。
  • 開発中にcurlやpsqlを使ってキャッシュ値を手軽に確認・設定する。

クイックスタート

  1. 1

    ソースからpogocacheプログラムをビルドする

    make
  2. 2

    localhostのポート9401でサーバーを起動する

    ./pogocache
  3. 3

    curlで接続して値を保存・読み出す

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

使う前に知っておきたいこと

  • 64ビット版LinuxおよびmacOSのみを対象に設計・テストされています。
  • READMEにはWindowsのサポートについて記載されていません。

トピック

よくある質問

pogocache とは?
Memcache、Redis/Valkey、HTTP、Postgresのプロトコルに対応し、単一のCファイルとして組み込める、低レイテンシなC製キャッシュサーバーです。 Pogocacheは、リクエストあたりのレイテンシとCPU使用量の低減を重視したキャッシュサーバーです。Memcache、Valkey/Redis(RESP)、HTTP、Postgresなど複数のワイヤープロトコルで接続を受け付けるため、curl、redis-cli、psql、一般的なクライアントライブラリなどの既存ツールを変更せずに接続できます。
pogocache は無料で使えますか?ライセンスは?
pogocache は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pogocache は今もメンテナンスされていますか?
半年以内に更新あり。pogocache の最終コミットは 2026年8月5日 です。
pogocache は何に使えますか?
クライアントコードを変更せずに、レイテンシに敏感なサービスのRedisまたはMemcacheを置き換える。 高速なキーバリューキャッシュをCまたはC++アプリケーションに直接組み込む。 開発中にcurlやpsqlを使ってキャッシュ値を手軽に確認・設定する。
pogocache のインストール方法は?
ソースからpogocacheプログラムをビルドする: make localhostのポート9401でサーバーを起動する: ./pogocache curlで接続して値を保存・読み出す: curl -X PUT -d "my value" http://localhost:9401/mykey
pogocache はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tidwall/pogocache

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト