ホームページ  >  記事  >  データベース  >  Redis を使用する理由

Redis を使用する理由

藏色散人
藏色散人オリジナル
2019-06-26 11:34:275903ブラウズ

Redis を使用する理由

Redis は何でもできます

キャッシュ、これが最もよく知られた使い方であることは間違いありません。 Redisの今日のシーン。サーバーのパフォーマンス向上に非常に効果的です;

ランキング一覧 従来のリレーショナルデータベースを使用すると非常に面倒ですが、Redis の SortSet データ構造を使用すると非常に便利です;

電卓/速度リミッター。Redis のアトミックな自動インクリメント操作を使用すると、ユーザーの「いいね!」数やユーザーの訪問数などをカウントできます。このタイプの操作に MySQL を使用する場合、頻繁な読み取りと書き込みにより、かなりの効果が得られます。プレッシャー; 速度リミッターの一般的な使用シナリオは、特定の API へのユーザーのアクセス頻度を制限することです。一般的に使用されるシナリオには、ユーザーが異常なクリックによって引き起こされる不必要なプレッシャーを防ぐためのラッシュ購入が含まれます。関係、コレクションの使用 交差、結合、差分などの一部のコマンド。共通の友人や共通の趣味などの機能を簡単に処理できます。

単純なメッセージ キュー。Redis 独自のパブリッシュ/サブスクライブ モードに加えて、List を使用して次のようなキュー メカニズムを実装することもできます。電子メール送信などの要件は高い信頼性を必要としませんが、多くの DB プレッシャーをもたらします。リストを使用して非同期分離を完了できます。

セッション共有 (PHP を例にとります)。デフォルトのセッションは次の場所に保存されます。サーバー ファイル、クラスター サービスの場合、同じユーザーが異なるマシンにアクセスする可能性があり、ユーザーは頻繁にログインすることになります。Redis を使用してセッションを保存した後、ユーザーはどのマシンにアクセスしても対応する情報を取得できます。 on. セッション情報。

Redis でできないこと

Redis は多くのことができるように見えますが、万能薬ではありません。半分の労力で2倍の結果が得られます。悪用すると、システムの不安定化、コストの増加、その他の問題が発生する可能性があります。

たとえば、Redis は基本的なユーザー情報を保存するために使用されます。Redis は永続性をサポートできますが、その永続性ソリューションはデータの絶対的な着陸を保証できず、永続性が原因で Redis のパフォーマンスが低下する可能性もあります。 Redis サービスへの負荷が高まります。

簡単にまとめると、データ量が多すぎてデータへのアクセス頻度が非常に低い企業は、Redis の使用には適していません。データが大きすぎるとコストが増加し、アクセス頻度が低すぎると考えられます。メモリに保存するのはリソースの無駄です。

Redis を使用する理由

選択の理由を常に見つける必要があります

上記では Redis のいくつかの使用シナリオについて説明しましたが、他にも多数の使用シナリオがあります。これらのシナリオに対するソリューションには、キャッシュ用の Memcache、セッション共有用の MySql、メッセージ キュー用の RabbitMQ などのオプションがあります。なぜ Redis を使用する必要があるのですか?

高速、完全にメモリに基づいており、C 言語で実装されており、ネットワーク層は epoll を使用して同時実行性の問題を解決し、シングルスレッド モデルにより不必要なコンテキストの切り替えや競合状態が回避されます。 注:

シングル スレッドとは、ネットワーク リクエスト モジュールでクライアントのリクエストを処理するために 1 つのスレッドを使用することのみを意味します。永続性と同様に、処理のためにスレッド/プロセスが再度開かれます

#豊富なデータ型: Redis には 8 つのデータ型があります。もちろん、一般的に使用される 5 つの型は String、Hash、List、Set、SortSet です。これらはすべてキー値に基づいてデータを編成します。各データ タイプには、ほとんどのニーズを満たす非常に豊富な操作コマンドのセットが用意されています。特別なニーズがある場合は、Lua スクリプト (アトミック性) を使用して新しいコマンドを自分で作成することもできます。

提供される豊富なデータ型に加えて、Redis はスロークエリ分析、パフォーマンステスト、パイプライン、トランザクション、Lua カスタムコマンド、ビットマップ、HyperLogLog、パブリッシュ/サブスクライブ、Geo などのパーソナライズされた機能も提供します。

Redis のコードは GitHub 上のオープン ソースです。コードは非常にシンプルかつ洗練されており、誰でもそのソース コードを理解できます。コンパイルとインストールも非常に簡単で、システムへの依存はありません。活発なコミュニティ、さまざまなクライアントの言語サポートも非常に充実しています。さらに、トランザクション (決して使用されない)、永続性、およびマスター/スレーブ レプリケーションもサポートしており、高可用性と分散が可能になります。

Redis を使用する理由

開発者として、私たちが使用するものをブラックボックスにすることはできません。今日は、Redis の使用シナリオと、なぜ他のものではなく Redis を選んだのかについて簡単に説明します。次回は、Redisの内部データ構造と、よく使われるコマンドの時間計算量についてまとめます。

Redis 関連の知識の詳細については、

Redis 使用法チュートリアル

列をご覧ください。 Redis を使用する理由

以上がRedis を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。