Repolode
OpenAtomFoundation

OpenAtomFoundation/pikiwidb

RocksDBを永続ストレージに使い、メモリを超えるデータセットを対象としたRedisプロトコル互換のキーバリューストア。

代替できる製品:Redis

スター
6,136
フォーク
1,170
未解決の Issue
89
最終コミット
22 日前

これは何?

PikiwiDB(Pika)は、Redisプロトコルに対応したキーバリューストレージシステムです。string、hash、list、zset、set、geo、hyperloglog、pubsub、bitmap、streamなど、一般的なRedisのデータ型をサポートします。すべてのデータをメモリに保持するのではなく、データをRocksDBに永続化し、頻繁にアクセスされるデータをキャッシュするため、容量はRAMではなくディスクによって決まります。

Redisのメモリコストやシングルスレッドの制約が問題になるワークロード向けに、置き換えて使える代替手段として設計されています。slaveofコマンドを使ってレプリカを持つ単一のmasterとして構成でき、完全同期と増分同期に対応します。また、グループの追加・削除によって拡張できるCodisクラスターとしても運用できます。Redisからデータを移行するためのツールもリポジトリに含まれています。

C++17を使い、CentOS、Ubuntu、macOS上でソースからビルドできます。公式Dockerイメージも提供されています。監視用メトリクスは、付属のexporterを通じて公開されます。

主な機能

  • 01Redisプロトコルおよび一般的なRedisデータ構造に対応
  • 02頻繁にアクセスされるデータをキャッシュしつつ、データをRocksDBに永続化
  • 03完全同期と増分同期に対応したmaster-slaveレプリケーションをサポート
  • 04グループの追加・削除によってCodisクラスターをスケールアウト
  • 05LinuxおよびmacOS向けのDockerイメージとビルドスクリプトを提供

ユースケース

  • Redisのメモリに収まらない大規模なデータセットの保存
  • 大規模なキーバリューワークロードにおけるメモリ関連のハードウェアコスト削減
  • アプリケーションコードを変更せずに、既存のRedis環境をディスクベースのストアへ移行

クイックスタート

  1. 1

    ソースコードをクローンする

    git clone https://github.com/OpenAtomFoundation/pikiwidb.git
  2. 2

    ビルドスクリプトでコンパイルする

    ./build.sh
  3. 3

    サンプル設定でPikiwiDBを起動する

    ./output/pika -c ./conf/pika.conf

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

  • ソースからビルドするには、C++17に対応したgcc/g++ 9以降とcmake 3.18以降が必要です。
  • READMEに記載されている対応プラットフォームは、CentOS、Ubuntu、macOSのみです。

トピック

#redis#key-value-store#rocksdb#nosql#database-cluster#persistent-storage#nosql-data-storage#nosql-databases#pikiwidb#redis-interfaces

よくある質問

pikiwidb とは?
RocksDBを永続ストレージに使い、メモリを超えるデータセットを対象としたRedisプロトコル互換のキーバリューストア。 PikiwiDB(Pika)は、Redisプロトコルに対応したキーバリューストレージシステムです。string、hash、list、zset、set、geo、hyperloglog、pubsub、bitmap、streamなど、一般的なRedisのデータ型をサポートします。すべてのデータをメモリに保持するのではなく、データをRocksDBに永続化し、頻繁にアクセスされるデータをキャッシュするため、容量はRAMではなくディスクによって決まります。
pikiwidb は無料で使えますか?ライセンスは?
pikiwidb は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pikiwidb は今もメンテナンスされていますか?
活発にメンテナンス中。pikiwidb の最終コミットは 2026年10月16日 です。
pikiwidb は何に使えますか?
Redisのメモリに収まらない大規模なデータセットの保存 大規模なキーバリューワークロードにおけるメモリ関連のハードウェアコスト削減 アプリケーションコードを変更せずに、既存のRedis環境をディスクベースのストアへ移行
pikiwidb のインストール方法は?
ソースコードをクローンする: git clone https://github.com/OpenAtomFoundation/pikiwidb.git ビルドスクリプトでコンパイルする: ./build.sh サンプル設定でPikiwiDBを起動する: ./output/pika -c ./conf/pika.conf
pikiwidb はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/OpenAtomFoundation/pikiwidb

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

関連プロジェクト