» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

Redis

Redisは、ネットワーク接続された永続化可能なインメモリデータベース連想配列(キー・バリュー)、リストセットなどのデータ構造を扱える。いわゆるNoSQLデータベースの一つ。オープンソースソフトウェアプロジェクトであり、(Redis Labs)(英語版)がスポンサーとなって開発されている[4]

Redis
開発元 Salvatore Sanfilippo[1][2]
初版 2009年5月10日 (14年前) (2009-05-10)
最新版 7.0.11 - 2023年4月17日 (34日前) (2023-04-17)[3] [±]
リポジトリ
  • github.com/redis/redis
プログラミング
言語
C
対応OS クロスプラットフォーム
対応言語 英語
サポート状況 活動中
種別 データストア
ライセンス BSD
公式サイト redis.io
(テンプレートを表示)

歴史

Redisの名称はREmote DIctionary Serverを意味している[5][6]。元々の開発者はVMware所属(2010年3月当時)のエンジニアSalvatore Sanfilippoである[7][8][9][6]2013年5月からは、RedisはVMwareをスピンオフした(Pivotal Software)(英語版)にスポンサーされるようになった[10]2015年6月からは、(Redis Labs)(英語版)がスポンサーとなっている[11]

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

  • 2017年09月 - RedisEnterpriseがRedis 4.0をサポート開始[16]
  • 2017年11月 - RedisEnterprise 5.0を提供開始[17]
  • 2018年10月 - Redis5.0がリリース。Redis Streamが導入される[18]
  • 2020年04月 - Redis6.0がリリース。ACLのサポートを拡大[19]
  • 2020年04月 - RedisEnterprise 6.0を提供開始[20]
  • 2022年04月 - Redis7.0がリリース。新コマンド、オプションを追加[21]

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

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

ActionScript, Bash, 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,[23] Racket, Ruby, Rust, Scala, Smalltalk, Tcl

データタイプ

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

  • バイナリ列(string)のリスト両端キューとして利用可能)
  • バイナリ列(string)の集合(ソートされない重複のないコレクション)
  • バイナリ列(string)のソートされた集合(浮動小数点数のスコアによりソートされた重複のないコレクション)
  • バイナリ列(string)のキーと値からなるハッシュテーブル
  • ビットマップ
  • 集合の濃度(元の個数)。分布を表現。

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

永続性

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

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

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

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

性能

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

クラスタリング

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

Redis Stack

Redis に加えて下記の物を加えた物を Redis Stack として配布している[30]

  • RedisInsight - Redis のデータ内容を見られたりする管理ツール[31]
  • RedisJSON - JSONデータベース[32]
  • RediSearch - 全文検索、緯度経度検索、ベクトルデータベースによる類似文章検索など[33]
  • RedisGraph - グラフデータベース。Cypherをクエリ言語として採用している。[34]
  • RedisTimeSeries - 時系列データベース[35]
  • RedisBloom - 確率分布の扱い[36]

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. ^ “Releases”. GitHub. 2023年4月17日閲覧。
  4. ^ Kepes, Ben (July 15, 2015),"Redis Labs hires the creator of Redis, Salvatore Sanfilippo", Network World, Retrieved August 30, 2015.
  5. ^ a b “FAQ, Redis”. 2017年3月16日閲覧。
  6. ^ a b Redis - AWS、2020年6月10日閲覧
  7. ^ Gwen Shapira (2010年3月17日). “VMware Hires Redis Key Developer – But Why?”. Blog. 2016年9月25日閲覧。
  8. ^ Salvatore Sanfilippo (2010年3月15日). “VMware: the new Redis home”. Blog. 2016年9月25日閲覧。
  9. ^ Derek Collison (2010年3月15日). “”. Blog. 2010年3月22日時点のオリジナルよりアーカイブ。2016年9月25日閲覧。
  10. ^ Salvatore Sanfilippo. “Redis Sponsors”. Redis Labs. 2016年9月25日閲覧。
  11. ^ Thanks Pivotal, Hello Redis Labs, July 15, 2015, By Salvatore Sanfilippo, Redis Labs
  12. ^ DB-Engines Ranking of Key-value Stores
  13. ^ Best NoSQL Databases: Fall 2015 Report from G2 Crowd
  14. ^ The Current State of Container Usage
  15. ^ Top 50 Developer Tools and Services of 2015
  16. ^ Abutbul, Aviad (2017年9月26日). “Redis 4.0 Now Available on Redis Enterprise”. Redis. 2022年7月23日閲覧。
  17. ^ B, Cihan (2017年11月27日). “Announcing Redis Enterprise Pack 5.0 GA”. Redis. 2022年7月23日閲覧。
  18. ^ Redis (2018年10月22日). “Redis 5.0 is here!”. Redis. 2022年7月23日閲覧。
  19. ^ Redis (2020年4月30日). “Diving Into Redis 6.0”. Redis. 2022年7月23日閲覧。
  20. ^ Magrafta, Alon (2020年4月30日). “Rediscover Redis Security with Redis Enterprise 6.0”. Redis. 2022年7月23日閲覧。
  21. ^ Haber, Itamar (2022年4月27日). “Redis 7.0 Is Out!”. Redis. 2022年7月23日閲覧。
  22. ^ “Clients”. Redis. 2023年5月19日閲覧。
  23. ^ CRAN – Package rredis
  24. ^ Redis documentation "Virtual Memory", redis.io, accessed January 18, 2011.
  25. ^ ReplicationHowto – redis – A persistent key-value database with built-in net interface written in ANSI-C for Posix systems – Google Project Hosting
  26. ^ a b Redis Cluster Specification, Redis.io, Retrieved 2013-12-25.
  27. ^ News about Redis: 2.8 is shaping, I'm back on Cluster, Antirez Weblog - Salvatore Sanfilippo, Retrieved 2013-12-25.
  28. ^ Redis Download Page, Redis.io, Retrieved 2013-12-25.
  29. ^ Redis Cluster - a Pragmatic Approach to Distribution, Redis.io, Retrieved 2013-12-25.
  30. ^ “About Redis Stack”. Redis. 2023年5月19日閲覧。
  31. ^ “RedisInsight | The Best Redis GUI”. Redis. 2023年5月21日閲覧。
  32. ^ “RedisJSON | NoSQL Document Database”. Redis. 2023年5月21日閲覧。
  33. ^ “RediSearch | Full-Text Search Engine for NoSQL Database”. Redis. 2023年5月21日閲覧。
  34. ^ “RedisGraph | A NoSQL Graph Database Module for Redis”. Redis. 2023年5月21日閲覧。
  35. ^ “RedisTimeSeries | A NoSQL Time Series Database”. Redis. 2023年5月21日閲覧。
  36. ^ “RedisBloom | Bloom & Cuckoo Filtering for Redis”. Redis. 2023年5月21日閲覧。
  37. ^ “RedisGears | Python Scripting in Redis”. Redis. 2023年5月21日閲覧。
  38. ^ “RedisAI | Real-Time ML Model Serving”. Redis. 2023年5月21日閲覧。

外部リンク

  • 公式ウェブサイト (英語)
  • redis - GitHub (英語)
  • Redis Mailing List Archives (英語)
  • Desktop GUI for Redis-Server (英語)
  • redisドキュメント日本語訳
  • Redis Documentation (Japanese Translation)
  • 【入門】Redis
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。