一般的な Redis コマンドの概要: 時間計算量の概要と、特定のデータ型によって内部的に使用されるデータ構造を含む;
Redis の高度な機能: 永続性、レプリケーション、センチネル、クラスターの導入など;
Redis について: メモリとブロッキングについて理解します。この部分は非常に重要です。これまでに紹介したテクニックはすべてテクニックとして使用でき、これはタオの一部である必要があります。
開発スキル: 主に実践的なものの概要キャッシュ設計と一般的な落とし穴を含む開発。
最初の部分を開始して、Redis をもう一度見てみましょう。
このシリーズの内容は、redis-3.2.12 に基づいています。
Redis は万能薬ではありません
面接中に、長所と短所を比較するようよく求められます。 Redis と Memcache の違いですが、個人的には、キャッシュだけでなく他のこともできる非リレーショナル データベースと、キャッシュのみに使用される 2 つは比較には適さないと思います。 Redis はキャッシュとしてよく使用されます。これが、Redis を他のテクノロジーとよく比較する主な理由です。では、Redis では何ができるのでしょうか?何ができないのですか?
Redis は何でもできます
キャッシュ、これが現在 Redis の最もよく知られた使用シナリオであることは疑いの余地がありません。サーバーのパフォーマンス向上に非常に効果的です;
ランキング一覧 従来のリレーショナルデータベースを使用すると非常に面倒ですが、Redis の SortSet データ構造を使用すると非常に便利です;
電卓/速度リミッター。Redis のアトミックな自動インクリメント操作を使用すると、ユーザーの「いいね!」数やユーザーの訪問数などをカウントできます。このタイプの操作に MySQL を使用する場合、頻繁な読み取りと書き込みにより、かなりの効果が得られます。プレッシャー; 速度リミッターの一般的な使用シナリオは、特定の API へのユーザーのアクセス頻度を制限することです。一般的に使用されるシナリオには、ユーザーが異常なクリックによって引き起こされる不必要なプレッシャーを防ぐためのパニック買いが含まれます。関係、コレクションの使用 交差、結合、差分などの一部のコマンド。共通の友人や共通の趣味などの機能を簡単に処理できます。
単純なメッセージ キュー。Redis 独自のパブリッシュ/サブスクライブ モードに加えて、List を使用して次のようなキュー メカニズムを実装することもできます。電子メール送信などの要件は高い信頼性を必要としませんが、多くの DB プレッシャーをもたらします。リストを使用して非同期分離を完了できます。
セッション共有 (PHP を例にとります)。デフォルトのセッションは次の場所に保存されます。サーバー ファイル、クラスター サービスの場合、同じユーザーが異なるマシンにアクセスする可能性があり、ユーザーは頻繁にログインすることになります。Redis を使用してセッションを保存した後、ユーザーはどのマシンにアクセスしても対応する情報を取得できます。 on. セッション情報。
Redis でできないこと
Redis は豊富な機能を備えていますが、万能ではなく、特定の分野に適しており、半分の労力で 2 倍の結果を得ることができます。悪用すると、システムの不安定化、コストの増加、その他の問題が発生する可能性があります。
たとえば、Redis は基本的なユーザー情報を保存するために使用されます。Redis は永続性をサポートできますが、その永続性ソリューションはデータの絶対的な着陸を保証できず、永続性が原因で Redis のパフォーマンスが低下する可能性もあります。 Redis サービスへの負荷が高まります。
簡単にまとめると、データ量が多すぎてデータへのアクセス頻度が非常に低い企業は、Redis の使用には適していません。データが大きすぎるとコストが増加し、アクセス頻度が低すぎると考えられます。メモリに保存するのはリソースの無駄です。
選択する理由を常に見つける必要があります
上記では Redis のいくつかの使用シナリオについて説明しました。そのため、これらに対する解決策には他にも多くのオプションがあります。キャッシュなどのシナリオ Memcache を使用すると、MySql でセッション共有を実装でき、RabbitMQ でメッセージ キューを実装できます。なぜ Redis を使用する必要があるのですか?
高速、完全にメモリベース、C 言語で実装、ネットワーク層は epoll を使用して同時実行性の問題を解決、シングルスレッド モデルにより不必要なコンテキストの切り替えと競合状態が回避されます。注: シングルスレッドのみを指します。ネットワークへのリクエスト モジュールは、リクエストを使用してクライアントのリクエストを処理します。永続性と同様に、処理するためにスレッド/プロセスを再度開きます。
豊富なデータ型。Redis には 8 つのデータ型があります。もちろん、主なものは次のとおりです。よく使われるのは String、Hash、List、Set、SortSet の 5 種類で、いずれもキー値に基づいてデータを整理します。各データ タイプには、ほとんどのニーズを満たす非常に豊富な操作コマンドのセットが用意されています。特別なニーズがある場合は、Lua スクリプト (アトミック性) を使用して新しいコマンドを自分で作成することもできます。
提供される豊富なデータ型に加えて、Redis はスロークエリ分析、パフォーマンステスト、パイプライン、トランザクション、Lua カスタムコマンド、ビットマップ、HyperLogLog、パブリッシュ/サブスクライブ、Geo などのパーソナライズされた機能も提供します。
Redis のコードは GitHub 上のオープン ソースです。コードは非常にシンプルかつ洗練されており、誰でもソース コードを理解できます。コンパイルとインストールも非常に簡単で、システムへの依存はありません。活発なコミュニティ、さまざまなクライアントの言語サポートも非常に充実しています。また、トランザクションサポート(未試行)、永続化、マスタースレーブレプリケーションなどの機能も備えており、高可用性と分散処理の実現を実現しています。
開発者として、私たちが使用するものをブラックボックスにすることはできません。
以上がRedis の使用シナリオは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisの有効期限時間により、キーとその値が削除された後、キーの期間を設定できます。 (1)有効期限またはpexpireコマンドを介して有効期限を設定します。 (2)有効期限は、ストレージスペースを解放し、データが廃止されないようにし、キューを管理するのに役立ちます。 (3)TTLコマンドを使用して有効期限を取得でき、永続コマンドは有効期限をキャンセルできます。

Redisログファイルは、通常/log/log/redis/redis-server.logまたは/< redisインストールディレクトリ> \ redis.logにあります。 Tail -F Redis -Server.logなどのコマンドラインツールを使用してログを表示できます。デフォルトのログレベルは「verbose」です。これは、redis.conf構成ファイルを変更することで変更できます。 Redisはログ分離もサポートしており、複数のファイルへのログを可能にします。

Redisデータベースに接続する3つの方法があります。Dedisclientクラスを使用して直接接続し、接続文字列を使用して接続し、接続プールを使用して接続します。

Redisクラスターを再起動するには、ローリングの再起動を使用できます。すべてのスレーブノードを閉じるマスターノードを閉じるマスターノードの再起動スレーブノードを1つずつ開始してクラスターステータスを確認します

Redis Cache Breakdownソリューション:Mutexを追加:データベースをクエリする前に分散ロックを取得して、同時クエリを防止します。非同期更新キャッシュ:キャッシュ更新操作をキューに入れて、同時更新を避けるために非同期に実行します。ホットスポットデータは期限切れになることはありません:ホットスポットデータの長い有効期限を設定するか、キャッシュの故障を防ぐために期限切れになることはありません。現在の制限:データベースにアクセスするための要求の数を制御して、同時アクセスが過度のデータベース圧力を引き起こすのを防ぎます。ブルームフィルターを使用:値が存在するかどうかをすばやく判断します。存在する場合、キャッシュデータを返します。存在しない場合は、データベースをクエリします。

Redisは、キーをすばやく削除するための複数の方法を提供します。DELコマンドを使用して、単一のキーを削除します。 Unlinkコマンドを使用して、複数のキーを削除します。 Keysコマンドとevalコマンドを使用して、パターンに従ってキーを削除します。 LUAスクリプトを使用して、多数のキーを削除するパフォーマンスを向上させます。 Redisストリームを使用して、時間に基づいてデータを削除します。

Redisバージョン表示方法:1。情報コマンド:Redis-Cli情報。 2。config getコマンド:redis-cli config get redis_version; 3。サーバー応答:Redis -Cli -H localhost -p 6379 -v。

Redisでバージョン番号を表示するには2つの方法があります。1。コマンド「Redis -Cli -V」を使用して、バージョン番号を直接出力します。 2。コマンド「Redis-Cli Info Server」を使用して、バージョン番号を含むより詳細な情報を出力します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック



