キャッシュ、データ構造サーバー、ドキュメントストア、ベクトルデータベース、メッセージブローカーとして使えるインメモリデータストア。
- スター
- 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
ソースからpogocacheプログラムをビルドする
make - 2
localhostのポート9401でサーバーを起動する
./pogocache - 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 の数値は毎日更新されます。
関連プロジェクト
RedisとMemcachedのAPI互換性を備え、両方のドロップイン置き換えを目指すインメモリデータストア。
RaftコンセンサスとgRPC APIを基盤とする、分散システムの重要データ向けの分散型・高信頼キー・バリューストア。
疎行列で隣接関係を保持し、OpenCypherでクエリを実行するグラフデータベース。LLMやGraphRAGのワークロード向けの知識グラフを対象としています。
RedisおよびValkey互換のRust製インメモリ・キーバリューサーバー。全文検索とベクトル検索を標準搭載。
React、Vue、Svelte、Solid向けのバインディングを備えた、Webアプリ用の非同期状態管理・データ取得ライブラリ。