Redis
作者 Salvatore Sanfilippo(2020年6月30日まで)[1][2]
開発元 Redis Ltd.(2015年7月15日から)
初版 2009年2月26日 (15年前) (2009-02-26)[3]
最新版 7.4.2 - 2025年1月6日 (42日前) (2025-01-06)[4] [±]
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS クロスプラットフォーム
対応言語 英語
サポート状況 活動中
種別 データストア
ライセンス Redis Source Available License v2 と Server Side Public License v1 のデュアルライセンス[5]
公式サイト redis.io ウィキデータを編集
テンプレートを表示

Redisは、Redis Ltd.が開発している、ネットワーク接続された永続化可能なインメモリデータベース。連想配列(キー・バリュー)、リスト、セットなどのデータ構造を扱える。いわゆるNoSQLデータベースの一つ。ライセンスはソースアベイラブル[6]。

概要

Redisの名称はREmote DIctionary Serverを意味している[7][8]。

DB-Engines.comの月間ランキングでは、Redisはしばしば最もポピュラーなキー・バリュー型データベース(英語版)として評されている[9]。また、Redisは2015年のユーザーレビューによる満足度と市場でのプレゼンスの評価でNoSQLデータベースで4位を[10]、Docker等の各種コンテナ上で使われているNoSQLデータベースとして1位を[11]、さらに上位50デベロッパーツール&サービスにおけるNoSQLデータベースとしても1位を獲得している[12]。

沿革

リリース

対応するプログラミング言語

以下のような数多くのプログラミング言語からの使用が可能である[41]。

ActionScript, Bash, C, C++, Chicken Scheme, Clojure, Common Lisp, C#, Crystal, D, Dart, Delphi, Deno, Elixir, Emacs Lisp, Erlang, gawk, GNU Prolog, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Julia, Lua, Nim, Objective-C, OCaml, Perl, PHP, Pure Data, Python, R,[42] Racket, Ruby, Rust, Scala, Smalltalk, Tcl

データタイプ

Redisではキーと値を紐づけて保存する。しかしRedisと他の構造型ストレージの重要な違いとして、Redisはバイナリ列(文字列, string)だけでなく以下のようなデータタイプをサポートする。Redis ではバイナリ列のことを string と呼んでいるが、特に文字の使用だけに限った物ではない。

値のデータタイプは、各タイプごとに用意された操作(コマンド)で決定される。RedisはINTERSECTIONやUNION、セットやリストの差分抽出といったサーバーサイド操作をアトミックにサポートする。

永続性

Redisでは一般的に全てのデータはメモリ上に格納される。バージョン2.4よりバーチャルメモリと名付けられたデータをディスク上に格納する機構が使用可能となったが[43]、これは後に非推奨となっている。永続性を実現するための方法としては、3.2現在では2つの手段が用意されている。1つ目はスナップショットと呼ばれるもので、スナップショットではメモリ上のデータは非同期で時折RDBダンプの形式でディスク上に書きこまれる。もう1つの手段が、1.1から存在するAOF (append-only file) と呼ばれるもので、こちらはメモリ上のデータが変更されるごとにトランザクションログが書きこまれる安全な方式となっている。Redisはトランザクションログの肥大化防止のためにバックグラウンドでこれを再生成することができる。

デフォルトでは、Redisは2秒間隔でデータをファイルシステムに書きこむようになっているが、必要であればより安全なオプションを使用することもできる。デフォルト設定でシステムが完全に失敗した場合でも、失われるデータは数秒間分に限られる。

レプリケーション(複製)

Redisはマスター・レプリカ・レプリケーションをサポートする。Redisサーバーのデータは、複数台のレプリカに複製できます。レプリカは、他のレプリカのマスターになることができます。これにより、Redisは単一ルートのレプリケーションツリーを実装できます。Redisのレプリカには書き込みを許可する設定も可能で、その場合インスタンス間の不整合を許容する形になる。Redisは出版-購読型モデル (Publish/Subscribe) を完全に実装しており、マスターで出版 (Publish) されたメッセージは、レプリカに接続して購読 (Subscribe) しているクライアントにも到達する。レプリケーションは、読込みの拡張性(書込みは除く)とデータの冗長性向上に有効である。[44]

性能

データの永続性が必要ない場合において、Redisはメモリ上のみで動作することが可能であり、トランザクションのコミットごとにディスクへの書き込みが発生するデータベースと比べて性能的に優位である[7]。Redisの操作はシングルスレッド上のシングルプロセスとして動作する。そのため、1つのRedisインスタンスでは例えばストアドプロシージャのように並列に処理を実行することはできない。

クラスタリング

Redisプロジェクトはクラスター仕様を持っており[45]、開発者のSanfilippoはRedis clusterの製品版ではキー空間の自動パーティショニングとホットリシャーディングをサポート、ただしシングルキー操作のみに対応、という投稿を行っている[46](β版が2013年末にリリース予定[47])。将来のバージョンでは、1000以上のノードをサポートし、ハートビート(英語版)と障害検知によりフォールトトレランスを実現、スレーブのマスターへの昇格、全ノードへの出版-購読モデルなどが構想されている[45][48]。

Redis Stack

Redis に加えて下記の物を加えた物を Redis Stack として配布している[49]。これらのソフトウェアもソースアベイラブルで配布されている[50]。

以下は、かつて Redis Stack に含まれていた物。

以下は、かつて開発されていた物。Redis Stack にも含まれていない。

関連項目

脚注

[脚注の使い方]
  1. ↑ An interview with Salvatore Sanfilippo, creator of Redis, working out of Sicily, January 4, 2011, by Stefano Bernardi, EU-Startups
  2. ↑ Salvatore Sanfilippo – Welcome to Redis Labs, July 15, 2015, By Itamar Haber, Redis Labs
  3. 1 2 “Page 7 of 7 - Redis - Google Code Archive - Long-term storage for Google Code Project Hosting.”. code.google.com. 22 March 2024閲覧。
  4. ↑ “Releases”. GitHub. 2025年1月15日閲覧。
  5. ↑ “Redis Licensing Overview | Redis”. Redis. 22 March 2024閲覧。
  6. 1 2 Trollope, Rowan. “Redis Adopts Dual Source-Available Licensing | Redis”. Redis. 22 March 2024閲覧。
  7. 1 2 “FAQ, Redis”. 2017年3月16日閲覧。
  8. 1 2 Redis - AWS、2020年6月10日閲覧
  9. ↑ DB-Engines Ranking of Key-value Stores
  10. ↑ Best NoSQL Databases: Fall 2015 Report from G2 Crowd
  11. ↑ The Current State of Container Usage
  12. ↑ Top 50 Developer Tools and Services of 2015
  13. ↑ LMDB -- First version of Redis written in Tcl
  14. ↑ Gwen Shapira (March 17, 2010). “VMware Hires Redis Key Developer – But Why?”. Blog. September 25, 2016閲覧。
  15. ↑ Salvatore Sanfilippo (March 15, 2010). “VMware: the new Redis home”. Blog. September 25, 2016閲覧。
  16. ↑ Derek Collison (March 15, 2010). “VMware: The Console: VMware hires key developer for Redis”. Blog. March 22, 2010時点のオリジナルよりアーカイブ。September 25, 2016閲覧。
  17. ↑ Salvatore Sanfilippo. “Redis Sponsors”. Redis Labs. September 25, 2016閲覧。
  18. ↑ Kepes, Ben (4 November 2013). “UPDATED - Was Garantia, Is Now RedisDB. Either Way NoSQL Is Hot. But Open Source Firestorm Ensues” (auto). Forbes. 22 March 2024閲覧。
  19. ↑ “Database Provider Garantia Data Makes Another Name Change, This Time To Redis Labs | TechCrunch”. TechCrunch. 22 March 2024閲覧。
  20. ↑ Thanks Pivotal, Hello Redis Labs, July 15, 2015, By Salvatore Sanfilippo, Redis Labs
  21. ↑ “Redis Creator, Salvatore Sanfilippo (Antirez), Joins Redis”. Redis. 22 March 2024閲覧。
  22. ↑ Haber, Itamar. “Salvatore Sanfilippo - Welcome to Redis | Redis”. Redis. 22 March 2024閲覧。
  23. ↑ Gupta, Manish. “Introducing Redis Enterprise | Redis”. Redis. 22 March 2024閲覧。
  24. ↑ “Redis Labs Becomes, Simply, Redis | Redis”. Redis. 22 March 2024閲覧。
  25. ↑ “The end of the Redis adventure - <antirez>”. antirez.com. 22 March 2024閲覧。
  26. ↑ Gottlieb, Yossi. “New Governance for Redis | Redis”. Redis. 22 March 2024閲覧。
  27. ↑ Bengal, Ofer. “Thank You, Salvatore Sanfilippo | Redis”. Redis. 22 March 2024閲覧。
  28. ↑ Kreisman, Dylan. “From Our Founders: Becoming One Redis | Redis”. Redis. 22 March 2024閲覧。
  29. ↑ “LICENSE.txt” (英語). GitHub. 2024年4月28日閲覧。
  30. ↑ “Linux Foundation Launches Open Source Valkey Community”. 2024年4月29日閲覧。
  31. ↑ “Page 6 of 7 - Redis - Google Code Archive - Long-term storage for Google Code Project Hosting.”. code.google.com. 22 March 2024閲覧。
  32. ↑ “Page 4 of 7 - Redis - Google Code Archive - Long-term storage for Google Code Project Hosting.”. code.google.com. 22 March 2024閲覧。
  33. ↑ Redis 3.0 release notes
  34. ↑ Redis 4.0 release notes
  35. ↑ Abutbul, Aviad (2017年9月26日). “Redis 4.0 Now Available on Redis Enterprise”. Redis. 2022年7月23日閲覧。
  36. ↑ B, Cihan (2017年11月27日). “Announcing Redis Enterprise Pack 5.0 GA”. Redis. 2022年7月23日閲覧。
  37. ↑ Redis (2018年10月22日). “Redis 5.0 is here!”. Redis. 2022年7月23日閲覧。
  38. ↑ Redis (2020年4月30日). “Diving Into Redis 6.0”. Redis. 2022年7月23日閲覧。
  39. ↑ Magrafta, Alon (2020年4月30日). “Rediscover Redis Security with Redis Enterprise 6.0”. Redis. 2022年7月23日閲覧。
  40. ↑ Haber, Itamar (2022年4月27日). “Redis 7.0 Is Out!”. Redis. 2022年7月23日閲覧。
  41. ↑ “Clients”. Redis. 19 May 2023閲覧。
  42. ↑ CRAN – Package rredis
  43. ↑ Redis documentation "Virtual Memory", redis.io, accessed January 18, 2011.
  44. ↑ ReplicationHowto – redis – A persistent key-value database with built-in net interface written in ANSI-C for Posix systems – Google Project Hosting
  45. 1 2 Redis Cluster Specification, Redis.io, Retrieved 2013-12-25.
  46. ↑ News about Redis: 2.8 is shaping, I'm back on Cluster, Antirez Weblog - Salvatore Sanfilippo, Retrieved 2013-12-25.
  47. ↑ Redis Download Page, Redis.io, Retrieved 2013-12-25.
  48. ↑ Redis Cluster - a Pragmatic Approach to Distribution, Redis.io, Retrieved 2013-12-25.
  49. ↑ “About Redis Stack”. Redis. 19 May 2023閲覧。
  50. ↑ “Redis Licensing Overview | Redis”. Redis. 4 September 2023閲覧。
  51. ↑ “RedisInsight | The Best Redis GUI”. Redis. 21 May 2023閲覧。
  52. ↑ “RedisJSON | NoSQL Document Database”. Redis. 21 May 2023閲覧。
  53. ↑ “RediSearch | Full-Text Search Engine for NoSQL Database”. Redis. 21 May 2023閲覧。
  54. ↑ “RedisTimeSeries | A NoSQL Time Series Database”. Redis. 21 May 2023閲覧。
  55. ↑ “RedisBloom | Bloom & Cuckoo Filtering for Redis”. Redis. 21 May 2023閲覧。
  56. ↑ Kogan, Lior. “RedisGraph End-of-Life Announcement”. Redis. 4 September 2023閲覧。
  57. ↑ “RedisGears/RedisGears: Dynamic execution framework for your Redis data”. January 15, 2025閲覧。
  58. ↑ “RedisAI/RedisAI: A Redis module for serving tensors and executing deep learning graphs”. January 15, 2025閲覧。

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS A90