「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > レディス

レディス

2024 年 11 月 6 日に公開
ブラウズ:884

Redis

Redis は、データがキーと値のペアで保存される NOSQL データベースです。
Redis はデータをメイン メモリに保存します。つまり、データをディスクに保存する PostgreSQL のようなデータベース システムとは異なり、高速ですが揮発性です。

概要

サーバーとデータベースを備えたアプリケーションでは、データベース上の情報にアクセスすると遅延が発生します。

redis のような Key-Value データベースはこれらのデータベースの前に置かれることが多く、アクセス操作には 2 つの手順が必要です:

  1. 情報がキャッシュ内にある場合、キャッシュ ヒット、アプリケーションは Redis から情報を取得し、クライアントに送信します
  2. そうでない場合は、キャッシュ ミス、アプリケーションはデータベースから情報を取得し、それをクライアントに送信し、キャッシュに保存します。

これらの 2 つの手順と、メイン メモリのレイテンシがディスクよりも低いことを考慮すると、Redis を使用して、頻繁に使用される最近のデータや高価な操作の保存とアクセスが可能になり、それによってアプリケーションが 10 ~ 50 倍高速化できると言えます。

したがって、将来的にスケーラブルなアプリケーションを構築しようとしている場合、Redis ( または Redis に類似したデータベース ) が不可欠であるということは事実です。


質問

  1. Redis はオープン ソースですか?: はい、Redis は特別な種類のライセンスを持つオープン ソースですが、Snapchat や Memcached の KeyDB などのオープン ソースの代替手段もあります。 KeyDB は Redis のフォークですが、現時点では Linux 上でのみ実行できます。

  2. Redis は Windows をサポートしていますか?: いいえ、Redis は Windows をサポートしていませんが、WSL/Ubuntu をインストールし、
    を使用して Redis をインストールできます。

sudo apt install redis
  1. WSL を使用しています。システムで redis サーバーが動作しないのはなぜですか: WSL で実行している場合、次を使用して redis-server を実行できます。
redis-server --port 6000

ここで、6000 は、実行するローカル サーバーのポートです。 (つまり 127.0.0.1:6000)。

ほとんどの問題は、redis-server が使用しているデフォルトのポートがすでに使用されていることが原因です

  1. Redis 用のクライアント ライブラリはありますか?: 実際にはあります。 Redis Web サイトで見つけることも、自分で構築することもできます。

Redis のインストール

Linux では、redis のインストールは次のように簡単です。

sudo apt install redis
Mac の

または :

brew install redis

Redis の実行

には ターミナルの 2 つのインスタンス

が必要です

サーバーを実行する最初のサーバー上

redis-server -port 

そして 2 番目のクライアントでクライアントを実行します

redis-cli

Web アプリを構築する場合、クライアントを実行する必要はありません ただし、サーバーは実行する必要があります

Redis の概念

redis には理解すべき 3 つの主要な概念があります または 4 つ

  1. キーと値のペア
  2. リスト
  3. セット
  4. ハッシュ

他のすべてのデータ構造は主に最初のデータ構造の高度な実装です

リストとは、リンクされたリストではなく、配列を意味しており、redis ではそれをそう呼んでいます。


キーと値のペア

キーと値のペアは、ほとんどのプログラミング言語で一般的なデータ構造です。

  1. Python では、辞書または dict 略して

  2. と呼ばれます。
  3. JavaScript では マップ

  4. と呼ばれます
  5. C# では、Dictionaries

  6. と呼ばれます。

Redis にはキーと値のペアの主な操作が 6 つあります

オペレーション 説明 さらなる説明
セット キーと値のペアを作成します 名前を設定ジョン 値にマップするキーを設定します
得る キーの値を取得します 名前を取得 ジョンが返されます
デル キーと値のペアを削除します DEL名 これにより、キーと値のペアの名前がデータベースから削除されます
存在します キーが Redis データベースに存在するかどうかを確認します 名前が存在します True または False に対応する 1 または 0 を返します
フラッシュ キャッシュ全体をクリアします フラッシュ postgres の DROP TABLE に多かれ少なかれ似ています
キー * データベース内のすべてのキーを返します キー *

時間ベースの操作もあります。時間ベースの操作では、キーは設定された期間だけキャッシュ内にあり、時間が経過するとキャッシュはキーを削除します。

主要な時間ベースの操作は 2 つあります

です。
オペレーション 説明 さらなる説明
期限切れ 定義後にキーを期限切れにします 期限切れの名前 10 10 秒後にキーと値の名前を削除します。キーは EXPIRE を呼び出す前に SET で定義する必要があります。一般的な代替案は;
セテックス 定義時にキーを期限切れにします セテックス 30 15 歳 キーの有効期間を値 30 に設定し、その後 15 秒後にキーと値のペアを削除します
TTL 生存時間 TTL 年齢 年齢キーが削除されるまでの残り時間を返します

ブログが長くなってしまったので、リストセットハッシュマップ、そしてredis に関する面接での質問について話します。 ] は別のブログで。

ご質問がございましたら、下にコメントしてください。できる限りお答えいたします。⭐ハッピーコーディング

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ezekiel_77/redis-3njh?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3