Redis がシングルスレッドである理由
では、なぜ Redis はシングルスレッドなのか
まず、Redis が高速であることを理解する必要があります。公式 FAQ には、Redis はメモリベースの操作であるため、CPU が Redis のボトルネックではない、と記載されていますが、Redis のボトルネックはおそらく マシンのメモリまたはネットワーク帯域幅のサイズです。シングルスレッドは実装が簡単で、CPU がボトルネックにならないため、シングルスレッド ソリューションを採用するのが合理的です (結局のところ、マルチスレッドを使用すると多くの問題が発生します!)。 (推奨される学習: Redis ビデオ チュートリアル )これを見たら泣くかもしれません。単一スレッドを使用して Redis をこれほど高速にするには、いくつかの主要な技術的ポイントがあるだろうと思っていましたが、私たちをだましているように見える公式の回答は期待していませんでした。ただし、Redis が高速である理由はすでに明確に説明できており、シングルスレッド モードで既に高速であるため、マルチスレッドを使用する必要はありません。
ただし、シングルスレッドのアプローチではマルチコア CPU のパフォーマンスを活用できませんが、単一のマシン上で複数の Redis インスタンスを開くことでパフォーマンスを向上させることができます。
警告 1:ここで強調している単一スレッドには、ネットワーク リクエストを処理するためのスレッドが 1 つしかありません。正式な Redis サーバーが実行されている場合は、複数のスレッドが存在する必要があります。このスレッドでは、誰もがここに明確な注意を払う必要があります。たとえば、Redis が永続化されると、サブプロセスまたはサブスレッドとして実行されます (特定のサブスレッドまたはサブプロセスについては、読者が詳しく調べる必要があります); The " ps コマンドの -T" パラメータは、表示スレッドを示します (スレッドを表示、場合によっては SPID 列も表示されます)。「SID」列はスレッド ID を示し、「CMD」列はスレッド名を示します。
公式 FAQ の最後の段落には、Redis バージョン 4.0 からマルチスレッドがサポートされると記載されていますが、マルチスレッド操作は特定の操作でのみ実行されます。したがって、この記事が将来のバージョンでもシングルスレッドになるかどうかは、読者が確認する必要があります。 Redis 関連の技術記事の詳細については、
「Redis データベース チュートリアルの使用方法の概要」以上がRedis がシングルスレッドである理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









構成ファイルを指定してRedisを再起動します。1。構成ファイル(通常はconfサブディレクトリにあるredis.conf)を見つけます。 2。必要な構成(ポートの変更など)を変更します。 3. redis-server/path/to/redis.confコマンドを使用して、構成ファイルを介してredisを再起動します(/path/to/redis.confは変更された構成ファイルのパスです)。 4. Redis-Cliを使用して、それが正常に再起動されたことを確認します。

RedisTartの再起動後もデータは存在します。 Redisはデータをメモリに保存し、再起動してもメモリデータは削除されません。また、Redisは永続性を提供し、RDBまたはAOFファイルを介してハードディスクにデータを保存し、再起動後に永続的なファイルからデータを回復できるようにします。

さまざまなオペレーティングシステムでRedisサービスを再起動する方法:Linux/MacOS:SystemCTLコマンド(SystemCTL RestArt Redis-Server)またはServiceコマンド(Service Redis-Server Restart)を使用します。 Windows:services.mscツール([実行]ダイアログボックスに「serversis.msc」を入力してEnterを押します)を使用し、「redis」サービスを右クリックして[再起動]を選択します。

Redis RestArtコマンドはRedis-Serverです。このコマンドは、構成ファイルのロード、データ構造の作成、Redisサーバーの開始、クライアント接続をリッスンするために使用されます。ユーザーは、端末で「Redis-Server [Options]」コマンドを実行して、Redisサーバーを再起動できます。一般的なオプションには、バックグラウンド操作、構成ファイルパスの指定、リスニングポートの指定、データが失われた場合にのみスナップショットのリロードが含まれます。サーバーを再起動すると、すべてのクライアント接続が切断されることに注意してください。再起動する前に必要なデータを保存してください。

すべてのRedisデータをクリーニングする方法:Redis 2.8以降:Flushallコマンドはすべてのキー価値ペアを削除します。 Redis 2.6以前:delコマンドを使用してキーを1つずつ削除するか、Redisクライアントを使用してメソッドを削除します。代替:Redisサービスを再起動し(注意して使用)、またはRedisクライアント(flushall()やflushdb()など)を使用します。

Redisインスタンスの間に通信にはいくつかのメカニズムがあります。Pub/Sub:Publish/Sub Mode、効率的で低遅延のメッセージングを可能にします。クラスターモード:分散展開方法。高可用性とフォールトトレランスを提供します。クロスインスタンスコマンド:一時的な運用または管理目的に適したコマンドを別のインスタンスに直接送信できるようにします。

Redisはデータをメモリに保存し、RDBやAOFなどの永続的なストレージからデータをロードするため、データをクリアしません。永続的なストレージには2種類のタイプがあります。RDBとAOF。これにより、再起動後にデータが失われないようにします。さらに、Redisには、データの損失を防ぐために、スナップショットオプション、複製、センチネルなどの他の保護があります。ただし、まれに、永続的なストレージの破損や偶発的な終了など、データの損失につながる可能性があります。

Redisは、データベース内のすべてのキーのメモリ使用量を表示する2つのコマンドを提供します。メモリ使用法AllKeys:すべてのキーのメモリ使用量を返します。 "key"(key ")#メモリ使用(バイト)メモリキースペース:各データベース内のすべてのキーのメモリ使用情報の詳細なリストを提供します。
