| レディス | |
|---|---|
| 原作者 | サルヴァトーレ・サンフィリッポ[ 1 ] [ 2 ] |
| 開発者 | レディス[ 1 ] [ 2 ] |
| 初回リリース | 2009年2月26日[ 3 ] (2009年2月26日) |
| 安定版リリース | |
| リポジトリ | |
| 書かれた | C |
| オペレーティング·システム | Unixライク[ 5 ] |
| 入手可能な | 英語 |
| タイプ | データ構造ストア、キーバリューデータベース |
| ライセンス | Redisのソースコードライセンス、SSPL [ 6 ]またはAGPL [ 7 ] |
| Webサイト | レディス |
Redis(/ ˈ r ɛ d ɪ s / ; [ 8 ] [ 9 ]リモート辞書サーバー)[ 8 ]は、分散キャッシュおよびメッセージブローカーとして使用されるメモリ内キーバリューデータベースであり、オプションで耐久性を備えています。[ 10 ]すべてのデータをメモリ内に保持し、その設計により、Redisは低レイテンシの読み取りと書き込みを提供し、キャッシュを必要とするユースケースに特に適しています。
このプロジェクトは、2009年からサルヴァトーレ・サンフィリッポによって開発・保守されてきた。 [ 11 ] 2015年から2020年まで、彼はRedis Ltdがスポンサーとなっているプロジェクトのコアチームを率いていた。[ 12 ]サルヴァトーレ・サンフィリッポは2020年にRedisのメンテナーを退任した。 [ 13 ] 2021年にRedis LabsはLabsという名称を削除し、現在は単に「Redis」として知られている。[ 14 ]
2018年、Redisの一部のモジュールは、コモンズ条項付きの修正Apache 2.0ライセンスを採用しました。[ 15 ] 2024年には、RedisのメインコードはオープンソースのBSD-3ライセンスから、Redis Source Available License v2とServer Side Public License v1のデュアルライセンスに切り替わりました。[ 6 ] 2025年5月1日、Redisはバージョン8.0からトリプルライセンスとなり、GNU Affero General Public Licenseが3番目のオプションとなりました。[ 7 ]
歴史

Redisという名前は、Remote Dictionary Serverを意味します。[ 8 ] Redisプロジェクトは、Salvatore Sanfilippo(ニックネームはantirez)がイタリアのスタートアップのスケーラビリティを改善しようとして、リアルタイムのウェブログアナライザーを開発したときに始まりました。従来のデータベースシステムを使用して特定の種類のワークロードをスケーリングする際に重大な問題に遭遇した後、Sanfilippoは2009年にTclでRedisの最初の概念実証バージョンのプロトタイプを作り始めました。[ 16 ]その後、SanfilippoはそのプロトタイプをC言語に翻訳し、最初のデータ型であるリストを実装しました。数週間、プロジェクトを社内で使用して成功した後、Sanfilippoはそれをオープンソース化することを決定し、Hacker Newsでプロジェクトを発表しました。プロジェクトは、特にRubyコミュニティの間で注目を集め始め、GitHubとInstagramがそれを採用した最初の企業の中にありました。[ 17 ] [ 18 ]
サンフィリッポは2010年3月にVMwareに採用された。[ 19 ] [ 20 ] [ 21 ]
2013年5月、RedisはPivotal Software(VMwareのスピンオフ)によってスポンサーされた。[ 22 ]
2015年6月、Redis Ltd.が開発を後援するようになった。[ 23 ]
2018年8月、 Redis Ltd.は、マネージドクラウドプロバイダーによる適切な対価なしのソフトウェア利用を抑制するため、オプションのRedisモジュールのライセンスをGNU Affero General Public License(AGPL)からApache Licenseに変更すると発表した。ただし、商用利用を制限する「 Commons Clause 」と呼ばれる追加条項が適用される。これにより、モジュールはソースコードが公開され、フリーソフトウェアではなくなった。RedisのコアソフトウェアはBSDライセンスのままであり、Redis Ltd.はこれらの条項を維持することを約束している。[ 15 ] [ 24 ] [ 25 ]
2018年10月にRedis 5.0がリリースされ、Redis Streamが導入されました。これは、複数のフィールドと文字列値を単一のキーで自動的に時間ベースのシーケンスで保存できる新しいデータ構造です。[ 26 ]
2019年2月、ライセンス条項に関する混乱を理由に、RedisモジュールのApacheライセンス(Commons条項付き)は「Redis Source Available License」(RSAL)に置き換えられました。RSALでは、モジュールを「データベース、キャッシュエンジン、ストリーム処理エンジン、検索エンジン、インデックスエンジン、またはML/DL/AIサービスエンジン」の一部として商用利用することは明示的に禁止されています。[ 27 ] [ 28 ]フリーオープンソースライセンスのモジュールの最新版は、コミュニティメンバーによってGoodFORMプロジェクトとしてフォークされました。 [ 29 ]
2020年6月、Salvatore Sanfilippo氏がRedisの単独メンテナーを退任しました。Sanfilippo氏の後任にはYossi Gottlieb氏とOran Agra氏が就任しました。[ 13 ] [ 30 ]
2024年3月、Redis Ltd.はバージョン7.4以降、RedisコアソフトウェアをRSALおよびServer Side Public License(SSPL)に再ライセンスすると発表した。どちらもソースコードが公開されており、フリーではない。[ 31 ] Linux Foundationはその後、Redisの最後のBSDライセンスバージョンをValkeyとしてフォークすると発表した。[ 32 ] 2025年5月、Redis Ltd.はバージョン8.0以降、ライセンスをAGPLに再度変更すると発表し、フォークによって差別化された製品の「公平な競争の場」を作るという目標を達成し、Redisはライセンス変更以降「記録的な成長」を達成したと述べた。[ 7 ]
サンフィリッポは2024年12月にレディスに復帰した。[ 33 ]
他のデータベースシステムとの違い
Redisは、データストアとキャッシュの両方の機能を持つシステムです。データはメインコンピュータのメモリから変更・読み出され、同時にランダムアクセスではなくシーケンシャルアクセスに最適化された形式でディスクに保存されます。フォーマットされたデータは、システムの再起動時にのみメモリ上に再構築されます。
Redisは、リレーショナルデータベース管理システム(RDBMS)とは異なるデータモデルを使用します。コマンドは、データベースエンジンによって実行されるクエリではなく、抽象データ型に対する操作を指定します。データは直接取得できるように設計された構造に格納されます。従来のRDBMSで一般的に使用されるセカンダリインデックス、集計、その他の機能には依存しません。Redisの実装では、forkシステムコールを使用して、データを保持しているプロセスを複製します。これにより、親プロセスはクライアントへのサービス提供を継続しながら、子プロセスはメモリ内のデータをディスクに永続化できます。
特徴
Redisはキーを値の型にマッピングします。Redisは、文字列、JavaScript Object Notation(JSON)ドキュメント、ハッシュ(フィールドの集合で、各フィールドは名前と値の文字列のペア)[ 34 ] 、リスト、セット、ベクターセット[ 35 ]など、さまざまなデータ型をサポートしています。
Redisクエリエンジンを使用すると、Redisをドキュメントデータベース、ベクターデータベース、セカンダリインデックス、検索エンジンとして使用できます。Redisクエリエンジンでは、ハッシュドキュメントとJSONドキュメントのインデックスを定義し、ベクター検索、全文検索、地理空間クエリ、集計のための豊富なクエリ言語を使用できます。 [ 36 ]
Redis Pub/Sub(パブリッシュ/サブスクライブの略)は軽量なメッセージング機能です。パブリッシャーはチャネルにメッセージを送信し、サブスクライバーはそのチャネルからメッセージを受信します。[ 37 ]
Redisのトランザクションは、複数のコマンドを1つのステップで実行することを可能にします。トランザクションの実行中は、他のクライアントから送信されたリクエストは処理されません。これにより、コマンドが単一の独立した操作として実行されることが保証されます。[ 38 ]
Redisユーザーはサーバー上にLuaスクリプトをアップロードして実行することもできる。[ 39 ]
2025年5月1日現在、Redisのバージョン8.0以降では、すべてのデータ型が同じパッケージに含まれており[ 40 ]、Redis Source Availableライセンスv2の下で利用できます。[ 41 ]以前は、一部のデータ型は別々であったため、異なるライセンスの下で利用可能でした。
粘り強さ
Redis は通常、データセット全体をメモリに保持します。バージョン 2.4 まででは、データセットの一部をディスクに保存する仮想メモリ[ 42 ]と呼ばれるものを使用するように設定できましたが、この機能は非推奨です。Redis での永続性は、 2 つの異なる方法で実現できます。1 つは Redis RDB ダンプファイル形式を使用して、データセットをバイナリ ダンプとして定期的にメモリからディスクに非同期転送するスナップショット、もう1 つはデータセットを変更する各操作の記録をバックグラウンド プロセスで追加専用ファイル (AOF) に追加する方法の 2 つです。Redis は、ジャーナルの無制限の増加を回避するために、バックグラウンドで追加専用ファイルを書き換えることができます。ジャーナリングはバージョン 1.1 で導入され、一般的により安全なアプローチと考えられています。
デフォルトでは、Redisは少なくとも2秒ごとにファイルシステムにデータを書き込みます。必要に応じて、より堅牢なオプションやより堅牢なオプションを利用できます。デフォルト設定では、システム全体に障害が発生した場合でも、失われるデータは数秒分のみです。
レプリケーション
Redisはマスター・レプリカ・レプリケーションをサポートしています。任意のRedisサーバーのデータは、任意の数のレプリカに複製できます。レプリカは別のレプリカのマスターになることができます。これにより、Redisは単一ルートのレプリケーションツリーを実装できます。Redisのレプリカは書き込みを受け入れるように設定できるため、インスタンス間の意図的または意図しない不整合を許容できます。パブリッシュ・サブスクライブ機能が完全に実装されているため、レプリカのクライアントはチャネルをサブスクライブし、レプリケーションツリーの任意の上位にあるマスターにパブリッシュされたメッセージの完全なフィードを受信できます。レプリケーションは、読み取り(書き込みではない)のスケーラビリティやデータの冗長性に役立ちます。[ 43 ]
パフォーマンス
データの耐久性が必要ない場合は、Redisのインメモリ特性により、トランザクションがコミットされたとみなされる前にすべての変更をディスクに書き込むデータベースシステムと比較して、優れたパフォーマンスを発揮します。[ 8 ] Redisは単一プロセスとして動作し、AOF(追加専用ファイル)を書き換える際にはシングルスレッドまたはダブルスレッドです。[ 44 ]そのため、単一のRedisインスタンスでは、ストアドプロシージャなどのタスクを並列実行することはできません。
クラスタリング
Redisは2015年4月にバージョン3.0のリリースでクラスタリングを導入しました。[ 45 ]クラスタ仕様はRedisコマンドのサブセットを実装しています。すべての単一キーコマンドが利用可能で、複数キー操作(和集合と積集合に関連するコマンド)は同じノードに属するキーに制限され、データベース選択操作に関連するコマンドは利用できません。[ 46 ] Redisクラスターは最大1,000ノードまで拡張でき、「許容できる」書き込み安全性を実現し、一部のノードに障害が発生しても操作を継続できます。[ 47 ] [ 48 ]
ユースケース
Redisの典型的な使用例としては、セッションキャッシュ、フルページキャッシュ、メッセージキューアプリケーション、リーダーボード、カウントなどがあります。[ 49 ]パブリッシュ・サブスクライブ型メッセージングパラダイムにより、サーバー間のリアルタイム通信が可能になります。
Amazon Web ServicesはElastiCache for Redisと呼ばれるマネージドRedisサービスを提供しており、GoogleはCloud Memorystoreと呼ばれるマネージドRedisサービスを提供しています。[ 50 ] MicrosoftはAzureでAzure Cache for Redisを提供しています。[ 51 ] AlibabaはAlibaba CloudでApsaraDB for Redisを提供しています。[ 52 ]
ライブラリインターフェース
Redisは様々なライブラリとインターフェースで接続されています。例えば、POCO C++ライブラリは、そのライブラリを通じてRedisとのインターフェースをサポートしていますPoco::Redis。[ 53 ]
ユーザー
RedisはAdobe、[ 54 ]、 Airbnb、[ 55 ]、 Amazon、[ 56 ] 、 Hulu、[ 57 ] 、 OpenAI、[ 58]、 Salesforce、[ 59 ] 、 Shopify、[ 60 ] 、 Tinder、[ 61 ] 、 Twitter、[ 62 ] 、[ 63 ] 、 Yahooなどの企業で使用されています。[ 64 ]
参照
参考文献
- ^ a bベルナルディ、ステファノ(2011年1月4日)。「シチリア島を拠点とするRedisの開発者、サルヴァトーレ・サンフィリッポ氏へのインタビュー」 EU -Startups、Menlo Media。
- ^ a b Haber, Itamar (2015年7月15日). 「Salvatore Sanfilippo: Redis Labsへようこそ」 . Redis .
- ^ 「7ページ中7ページ - Redis - Google Codeアーカイブ - Google Codeプロジェクトホスティング用の長期ストレージ」 code.google.com 。2024年3月22日閲覧。
- ^ 「リリース 8.4.0」。2025年11月18日。 2025年11月20日閲覧。
- ^ 「Redis入門」。Redis
はANSI Cで記述されており、Linux、*BSD、OS XなどのほとんどのPOSIXシステムで外部依存関係なしで動作します。
- ^ a b "LICENSE.txt" . GitHub . 2024年3月20日.
- ^ a b c「Redis、オープンソースへの回帰に大きく賭ける」InfoWorld。2025年5月1日閲覧。
- ^ a b c d「FAQ: Redis」 . Redis.io . 2022年2月12日閲覧。
- ^ 「Google グループ」 . groups.google.com . 2022年2月25日閲覧。
- ^ "Redis" . Redis . 2023年7月22日閲覧。
- ^ 「オープンソースデータベースRedisの開発者、サルヴァトーレ・サンフィリッポ氏との会話」 VentureBeat 2016年6月20日 2021年6月29日閲覧。
- ^ Kepes, Ben (2015年7月15日). 「Redis Labs、Redisの開発者Salvatore Sanfilippoを雇用」 . Network World . 2015年8月30日閲覧。
- ^ a b Francisco, Thomas Claburn in San. 「データベースの巨匠Antirez氏、Redisへの転向を表明:ソフトウェアを管理する構造化された生活ではなく、コードを書く非構造化された生活を望んでいるようだ」 www.theregister.com . 2021年6月29日閲覧。
- ^ 「データベーススタートアップRedis LabsがRedisとしてブランド変更」 . SiliconANGLE . 2021年8月11日. 2021年8月11日閲覧。
- ^ a b Claburn, Thomas. 「Redisには殺害の許可がある:オープンソースデータベースメーカーが一部コードをプロプライエタリ化する」 The Register . 2024年3月21日閲覧。
- ^ Sanfilippo, Salvatore (2017年4月28日). 「RedisのTclプロトタイプ」 . GitHub Gist . 2018年10月8日閲覧。
- ^ Wanstrath, Chris (2009年11月3日). 「Resqueの紹介」 .ブログ. 2018年10月8日閲覧。
- ^ Krieger, Mike (2011年10月31日). 「Redisに数億ものシンプルなキーと値のペアを保存する」 Instagramエンジニアリングブログ. 2018年10月8日閲覧。
- ^ Shapira, Gwen (2010年3月17日). 「VMwareがRedisの主要開発者を採用 – しかし、なぜ?」 .ブログ. 2016年9月25日閲覧。
- ^ Sanfilippo, Salvatore (2010年3月15日). 「VMware: the new Redis home」 .ブログ. 2016年9月25日閲覧。
- ^ Collison, Derek (2010年3月15日). 「VMware: The Console: VMware hires key developer for Redis」 . VMware Blog . 2010年3月22日時点のオリジナルよりアーカイブ。 2016年9月25日閲覧。
- ^ Sanfilippo, Salvatore. 「Redisスポンサー」 . Redis.io . Redis . 2019年4月11日閲覧。
- ^ Sanfilippo, Salvatore (2015年7月15日). 「Thanks Pivotal, Hello Redis Labs」 . antirez.com . 2019年4月3日閲覧。
- ^ Baer, Tony (2018年10月16日). 「MongoDBがオープンソースライセンスを変更する番だ」 . ZDNet . 2019年8月1日閲覧。
- ^ Shoolman, Yiftach (2018年8月22日). 「RedisのライセンスはBSDであり、今後もBSDのままです」 . Redis.io . Redis . 2024年9月30日閲覧。
- ^ 「Redis 5.0 が登場!」 2018年10月22日。
- ^ Finley, Klint (2019年7月31日). 「オープンソースソフトウェアにはいくつかの落とし穴がある」 . Wired . ISSN 1059-1028 . 2019年8月1日閲覧。
- ^ Vaughan-Nichols, Steven J. 「Redis Labsが新しいライセンスのためにCommons条項を削除」 ZDNet 2019年8月1日閲覧。
- ^ Gilbertson, Scott (2019年10月16日). 「2019年、複数のオープンソース企業が方針転換 ― それは正しい動きか?」 Ars Technica . 2019年10月16日閲覧。
- ^ 「Redisの冒険の終わり -」 . antirez.com . 2020年11月10日閲覧。
- ^ 「Redisがライセンス条項を厳格化、誰も満足せず」The Register . 2025年2月6日時点のオリジナルよりアーカイブ。2025年5月1日閲覧。
- ^ 「Linux FoundationがRedisフォークとしてValkeyをリリース」 Phoronix . 2025年5月1日閲覧。
- ^ Clark, Lindsay (2025年4月10日). 「Redisの開発者の復帰がベクターセットデータ型で実を結ぶ」 The Register . 2025年9月30日閲覧。
- ^ 「Redisハッシュ」 .ドキュメント. 2025年7月13日閲覧。
- ^ 「Redisベクトルセット」 .ドキュメント. 2025年7月13日閲覧。
- ^ 「Redisクエリエンジン」 .ドキュメント. 2025年7月13日閲覧。
- ^ 「Redis Pub/sub」 .ドキュメント. 2025年7月13日閲覧。
- ^ 「トランザクション」 . Docs . 2025年7月13日閲覧。
- ^ 「Luaによるスクリプト作成」 .ドキュメント. 2025年7月13日閲覧。
- ^ 「Redis 8.0」 .ドキュメント. 2025年7月13日閲覧。
- ^ Redis. 「ライセンス」 . Redis . 2025年7月13日閲覧。
- ^ 「仮想メモリ」 Redis.io 2019年4月11日閲覧。
- ^ 「Google Code アーカイブ - Google Codeプロジェクト ホスティング用の長期ストレージ」。code.google.com 。
- ^ 「Raspberry Pi 上の Redis: 非同盟地帯での冒険 - antirez」 . antirez.com .
- ^ 「Redis 3.0 リリースノート」 . GitHub . 2017年3月10日閲覧。
- ^ 「Cluster Spec」 。 2017年3月10日閲覧。
- ^ 「Cluster Spec」 。 2017年3月10日閲覧。
- ^ 「クラスターチュートリアル」 。 2017年3月10日閲覧。
- ^ 「Redisの活用事例トップ5 - ObjectRocket」 . ObjectRocket . Rackspace. 2017年11月7日.
- ^ 「Memorystore:インメモリデータストア」 . Google Cloud . 2023年2月3日閲覧。
- ^ 「Azure Redis Cache - Redis キャッシュ クラウド サービス - Microsoft Azure 」。azure.microsoft.com 。
- ^「ApsaraDB for Redis: キーバリューデータベースサービス - Alibaba Cloud」www.alibabacloud.com。
- ^ "Namespace Poco::Redis" . docs.pocoproject.org . POCOプロジェクト. 2025年10月18日閲覧。
- ^ 「AWS re:Invent 2014 | (SDD402) Amazon ElastiCache Deep Dive」 YouTube 2014年11月17日. 2023年7月22日閲覧。
- ^ 「AWS re:Invent 2018: AirbnbのセルフマネージドRedisからElastiCache for Redisへの道のり(DAT319)」 YouTube 2018年11月28日. 2023年7月22日閲覧。
- ^ 「Amazon GameOn データベース移行ケーススタディ – Amazon Web Services (AWS)」 Amazon Web Services, Inc. 2023年7月22日閲覧。
- ^ 「Huluのケーススタディ」 Amazon Web Services, Inc. 2023年7月22日閲覧。
- ^ 「Elevated API Errors」 . status.openai.com . 2023年10月19日. 2023年10月28日閲覧。
- ^ 「Redisのハッシュをセットではなく使用してキャッシュサイズと運用コストを削減する」 Salesforceエンジニアリング。2021年2月25日。 2025年9月30日閲覧。
- ^ 「Simplify: バッチ + キャッシュ最適化サーバーサイドストアフロントレンダリング」 Shopifyエンジニアリング、2023年5月3日。 2025年9月30日閲覧。
- ^ 「Amazon ElastiCache を使用して Tinder で大規模な回復力を構築 | AWS データベースブログ」 . aws.amazon.com . 2020年1月30日. 2023年7月22日閲覧。
- ^ 「TwitterでのRedisのスケーリング」 YouTube 2014年8月31日 2023年7月22日閲覧。
- ^ 「Twitterでの大規模なRedisの使用 - TwitterのRashmi Ramesh氏 - RedisConf17 -」。YouTube。2017年7月5日。2023年7月22日閲覧。
- ^ 「AWS re:Invent 2022 - Yahoo!がAWSでインメモリワークロードのコストを最適化した方法(DAT321)」 YouTube 2022年12月2日 2023年7月22日閲覧。
さらに読む
- Isabel DrostとJan Lehnard(2009年10月29日)、Happenings: NoSQL Conference、ベルリン、The H。Redisプレゼンテーションのスライド。概要。
- Billy Newport (IBM): 「キー/値プログラミング モデルのより高いレベルへの進化」Qcon カンファレンス 2009 サンフランシスコ。
- A Mishra: 「Centos/Fedora サーバーに Redis をインストールして構成する」
- E. Mouzakitis: 「Redis パフォーマンスの監視」