推奨 (無料): redis
##記事ディレクトリ
1. Redis とは
Redis: REmote DIctionary Server (リモート辞書サーバー)
Redis は完全にC 言語で書かれたオープン ソースで無料の、BSD プロトコルに準拠した 高性能 (キー/値) 分散メモリ データベース。また、メモリとメモリに基づいて実行される
NoSQL データベースでもあります。永続性をサポート は、最も人気のある NoSql データベースの 1 つであり、データ構造サーバーとしても知られています。同時に、Redis はシンプルで効率的な、分散型のメモリベースの
キャッシュ ツールでもあります。サーバーの構築後、ネットワーク接続を通じて Key-Value キャッシュ サービスが提供されます (データベースと同様)。
Redis には次の利点があります:
Redis の読み取り速度は 110,000 回/秒です。書き込み速度は8万回/秒。
Redis でサポートされている型には、文字列、ハッシュ、リスト、セット、および順序付けセットのデータベース タイプが含まれます。
すべての Redis 操作はアトミックであり、MULTI および EXEC 命令によってラップされます。
Redis は、パブリッシュ/サブスクライブ、通知、キーの有効期限などの機能をサポートしています。
Redis は独自のセパレータを使用しており、コード量が非常に短く、ロック (MySQL) を使用しないため、効率が非常に高くなります。
Redis には次の欠点もあります:
Redis はデータをメモリに直接保存します。データをディスクに保存するには、最初の方法は
① スケジュールされたスナップショット (スナップショット) を使用することです。データベース全体を時々ディスクに書き込み、毎回すべてのデータを書き込みます。コストが非常に高い; 2 番目の方法は
②ステートメント (aof) に基づいて追加する : 変更されたデータのみが追跡されますが、追加されたログが大きすぎる可能性があり、すべての操作を再実行する必要があるため、処理速度が遅くなります回復。
、メモリ占有量が多すぎます。
2. Redis でできること
エンタープライズ開発では、Redis をデータベース、キャッシュ、ホット データ (頻繁にクエリされるが変更されない) として使用できます。または削除された)データ)、メッセージミドルウェア、およびその他のほとんどの機能。Redis の一般的なシナリオの例は次のとおりです。
キャッシュ 現在、キャッシュは要件です。キャッシュを適切に使用する最も効果的な方法は、Web サイトのアクセス速度を向上させるだけでなく、データベースへの負荷を大幅に軽減することです。 Redis はキーの有効期限機能と柔軟なキー削除戦略を提供します。
ランキングリスト タオバオの月間売上リスト、時間別の新商品リストなど。 Redis が提供する順序付きセット データ構造は、さまざまな複雑なランキング アプリケーションを実装できます。
カウンター ECサイトでの商品の閲覧数、動画サイトでの動画再生数など。データのリアルタイム性を確保するには、閲覧ごとに 1 を与える必要があり、同時実行性が高い場合、毎回データベース操作を要求するのは間違いなく困難であり、プレッシャーになります。 Redis が提供する incr コマンドは、非常に優れたパフォーマンスでカウンター関数とメモリ操作を実装しており、これらのカウント シナリオに非常に適しています。
分散セッション クラスター モードでは、アプリケーションがそれほど多くない場合、通常はコンテナーに付属するセッション レプリケーション機能を使用するだけで十分です。アプリケーション内 複雑化するシステムでは、Redis などのインメモリ データベースを中心としたセッション サービスが構築されることが一般的であり、セッションはコンテナではなく、セッション サービスとインメモリ データベースによって管理されます。
分散ロック 分散テクノロジーによってもたらされる技術的課題は、グローバル ID、在庫削減、フラッシュ セールなどの同じリソースへの同時アクセスです。同時実行性が低いシナリオは、データベースの悲観的ロックと楽観的ロックを使用して実装できます。ただし、同時実行性が高いシナリオでは、リソースへの同時アクセスを制御するためにデータベース ロックを使用するのは理想的ではなく、データベースのパフォーマンスに大きな影響を与えます。 Redis の setnx 関数を使用して、分散ロックを書き込むことができます。設定が 1 を返した場合、ロックの取得が成功したことを意味します。それ以外の場合、ロックの取得は失敗しました。実際のアプリケーションではさらに詳細を考慮する必要があります。
ソーシャル ネットワーク 好き、嫌い、フォローする/フォローされる、共通の友達など、ソーシャル ネットワーキング サイトの基本的な機能です。ソーシャル ネットワーキング サイトへのアクセスは通常、比較的大規模であり、従来のリレーショナル データベース タイプはこのタイプのデータの保存には適していませんが、Redis が提供するハッシュ、セット、およびその他のデータ構造を使用すると、これらの機能を簡単に実装できます。
最新リスト Redis リスト構造。LPUSH はリストの先頭にキーワードとしてコンテンツ ID を挿入できます。LTRIM を使用して、リストの数に応じて、リストは常に N ID になります。最新のリストをクエリする必要はなく、ID に基づいて対応するコンテンツ ページに移動するだけです。
メッセージ システム
メッセージ キューは、ActiveMQ、RabbitMQ、Kafka やその他の一般的なメッセージ キュー ミドルウェアなど、大規模な Web サイトに必要なミドルウェアであり、主にビジネスで使用されます。デカップリング、トラフィックのピークシェービング、およびリアルタイム パフォーマンスの低いサービスの非同期処理。 Redis は、単純なメッセージ キュー システムを実装できるパブリッシュ/サブスクライブおよびブロック キュー機能を提供します。ただし、これをプロフェッショナルなメッセージ ミドルウェアと比較することはできません。
3. Redis のダウンロード、インストール、デプロイメント
Redis の英語公式 Web サイト。
Redis 中国語 Web サイト。
Redis 開発を行っている企業の 99% は Linux 版を使用およびインストールしているため、この記事では Linux でのインストールと操作のみを紹介しますが、Windows でのインストールには Baidu を使用できます。上記の公式 Web サイトにアクセスし、[ダウンロード] をクリックして .gz
インストール パッケージをダウンロードし、Linux の /opt
ディレクトリに配置します (ここでは Redis バージョン 6.0.5 をインストールしました)。
tar -zxvf redis-6.0.5.tar.gz
インストール コマンドは次のとおりです。上記のコマンドは Redis の解凍のみを行います。 Redis をインストールする場合は、Linux システムに gcc 環境が必要です。そうでない場合は、
#Linux 環境に既に gcc 環境がある場合は、次のコマンドを直接使用してインストールします。yum install gcc-c
を使用してインストールし、gcc -v## を使用します。 # バージョンを確認します。
redis コマンド ラインshutdown
コマンド シャットダウン。
停電、手動での Redis プロセスの強制終了など。
4. Redis に関するちょっとした知識
Redis は単一プロセスであり、単一プロセス モデルを使用してクライアント要求を処理します。読み取りや書き込みなどのイベントへの応答は、epoll 関数をラップすることによって実行されます。 Redis の実際の処理速度は、メインプロセスの実行効率に完全に依存します。
epoll は、ファイル記述子の大規模なバッチを処理するために Linux カーネルによって作成された epoll の改良版です。Linux での多重化 IO インターフェイスの選択/ポーリングの拡張版です。これにより、アクティブな同時接続が少数しかない場合、システム CPU 使用率が高くなるプログラムのパフォーマンス。 接続するコマンド。指定されたデータベース。
コマンドは、現在のデータベース内のキーの数を表示できます (keys *
すべてのキーを表示)。
統合パスワード管理。16 個のライブラリが同じパスワードを持ち、すべてが OK であるか、どれも接続できないかのどちらかです。
##その他の関連する無料学習の推奨事項:
以上がRedis の導入、インストール、デプロイメントに関する注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。