メモリを中心に高速処理
頻繁にアクセスするデータをメモリ上で扱います。データベースの検索結果などをキャッシュし、繰り返しの処理を減らす用途に適しています。
THE JAPANESE FIELD GUIDE
オープンソースのキーバリューストア、Valkey。
最初の一歩から移行の検討まで、日本語で道案内します。
WHAT IS VALKEY?
Valkeyは、BSDライセンスのオープンソース・キーバリューストアです。キャッシュやメッセージキューなどの用途に使われ、文字列だけでなく、リストや集合などのデータ構造を扱えます。
公式サイトで概要を読む ↗01 / ROOTS & HISTORY
Valkeyの出発点は、Redis 7.2.4のソースコードです。Redisは2009年に始まったプロジェクトで、データを主にメモリ上で扱い、キャッシュやセッション管理、メッセージ処理などに広く使われてきました。
Valkeyは、そのコードを引き継いで独立した開発を進める「フォーク」として誕生しました。Redisの単なる名称変更ではなく、現在はそれぞれ別のプロジェクトとして発展しています。
Redisは2024年3月、7.4以降のライセンスをBSDからRSALv2とSSPLv1のデュアルライセンスへ変更すると発表しました。これを受け、従来のBSDライセンスのもとで開発を続けたいメンテナーや貢献者が集まり、Valkeyを立ち上げました。
目指したのは、利用・配布の自由度を保ち、コミュニティが継続して開発に参加できること。Linux Foundationのもとで、オープンなガバナンスによる開発を進めています。
インメモリのデータストアとして発展し、Valkeyにつながる技術的な基盤に。
7.4以降を対象に、RSALv2 / SSPLv1へ移行。
Redis 7.2.4を起点に、BSD 3-Clauseで開発を継続。
Redisもオープンソースライセンスで利用できる選択肢を追加。Valkeyは独立して開発を継続。
出典:Linux Foundationの設立発表 / Redisの2024年の発表 / RedisのAGPLv3追加発表
02 / FEATURES & USE CASES
キーと値の保存から、データ構造を使った処理まで。
頻繁にアクセスするデータをメモリ上で扱います。データベースの検索結果などをキャッシュし、繰り返しの処理を減らす用途に適しています。
文字列、ハッシュ、リスト、集合、ソート済み集合、ストリームなどを提供。カウンター、ランキング、イベント処理などに組み合わせられます。
キーに有効期限(TTL)を設定できます。キャッシュの失効やセッション管理に利用でき、メモリ上限に達したときの削除方針も設定します。
スナップショット(RDB)や書き込みログ(AOF)による保存が可能です。必要な復旧条件に合わせて選択し、バックアップと復元も検証します。
レプリケーションでデータを複製し、Sentinelで障害時の切り替えを支援。Clusterではキーを分散して保持します。用途に応じた構成設計が必要です。
BSD 3-Clauseのもとで公開され、複数の企業や個人が開発に参加しています。コードや議論、リリース内容を公開リポジトリで確認できます。
機能の出典:Valkey公式 Introduction / 開発体制:設立発表
| 用途 | 使い方の例 | 考えておきたいこと |
|---|---|---|
| キャッシュ | 商品情報や集計結果を一時保存 | 有効期限、更新時の削除、キャッシュがない場合の処理 |
| セッション管理 | ログイン状態に関連するデータを保持 | 失効期間、アクセス制御、障害時の影響 |
| ランキング | ソート済み集合でスコア順に取得 | 同点の扱い、集計期間、データ量 |
| イベント処理 | StreamsやPub/Subでメッセージを扱う | 再読込や配信保証の要件に合う仕組みを選ぶ |
上記は機能を使った構成例です。実際の設計は、必要な性能とデータの保持条件に合わせて検証してください。
共通の起点を持ちますが、すべてのバージョン・機能で互換性が保証されるわけではありません。利用するコマンド、クライアント、モジュール、保存形式、サービス固有の制約を確認し、公式の移行ガイドに沿って検証してください。
永続化や複製は、障害時の損失を必ずゼロにするものではありません。書き込みの保存タイミング、複製の遅延、障害の種類によって結果が変わります。永続化の仕様を確認し、復元手順を試しておきましょう。
一律には判断できません。対象バージョン、データサイズ、コマンド、同時接続数、サーバー構成で結果が変わるため、自分のアプリケーションに近い負荷で比較してください。
03 / GET STARTED
必要なところから読み進められます。
データの持ち方と用途を知り、自分のアプリケーションでどう使うかを考えます。
公式ドキュメント ↗英語 / 概要とトピック別ガイド公式サイトの「GET STARTED」から環境に合った導入方法へ。検証用環境で接続と基本操作を試します。
インストールの入口 ↗英語 / 公式サイトまずはPING、SET、GETから。必要なデータ構造とコマンドをリファレンスで確認しましょう。
コマンドリファレンス ↗英語 / コマンド別の仕様04 / PLAN YOUR MIGRATION
移行の条件は、現在のバージョンや利用機能、提供サービスによって変わります。以下を整理してから、公式ガイドと検証環境で確認してください。
公式の移行ガイドを読む ↗バージョン、構成、マネージドサービスの制約を記録する。
クライアント、コマンド、Luaスクリプト、モジュールを確認する。
永続化、バックアップ、認証、監視、フェイルオーバーを検証する。
代表的な負荷で試し、停止時間と復旧手順を決める。
05 / KEEP LEARNING
最新の仕様やリリースは、公式の情報で確認できます。
OPEN FOR PROPOSALS 募集中
Valkeyの日本語情報を発信するために取得した valkey.jp / valkey.info について、継続的に活用してくださる個人・企業・コミュニティを探しています。
技術情報の発信、導入事例の紹介、勉強会やコミュニティの運営など、両ドメインを役立てるアイデアを歓迎します。
両ドメインの一括・個別のご希望を伺います。現在、valkey.infoはvalkey.jpへ転送しています。
本募集はサイト・ドメイン所有者によるものです。ValkeyプロジェクトやLinux Foundationの公式募集ではありません。
お名前・団体名、ご希望のドメイン、関わり方、想定する活用方法を添えてご連絡ください。条件が固まっていない段階でもご相談いただけます。
メールで相談する ↗ボタンからメールアプリが開きます。開かない場合は、上記アドレスへ直接お送りください。
ABOUT THIS GUIDE
valkey.jpは、Valkeyを学び、利用を検討する方のための非公式ガイドです。ValkeyプロジェクトやLinux Foundationの公式サイトではありません。
このサイトでは、公式資料への案内と導入前の確認事項を掲載しています。リンク先の対象バージョンと更新日もあわせてご確認ください。
掲載内容は運営者が確認して反映する方針です。一般の方が直接編集する機能は設けていません。
記事の推薦・修正提案は info@valkey.jp へお送りください。出典URLと対象バージョンを添えていただけると、内容を確認しやすくなります。