#redis は非リレーショナル インメモリ データベースです。データはメモリに保存され、メモリの読み取り速度は非常に高速です。単純なキーと値の場合は、 、メモリがボトルネックではありません。 一般に、ハッシュ検索は 1 秒あたり数百万回のオーダーに達することがあります。 (推奨学習: Redis ビデオ チュートリアル )
単一スレッドを使用して不必要なコンテキストの切り替えと競合状態を回避する
内部実装では epoll を使用します。 epoll 自体によって実装された単純なイベント フレームワークを使用します。 epoll での読み取り、書き込み、クローズ、接続はすべてイベントに変換され、epoll の多重化機能を使用して、io
Redis の操作は非常に高速であるため、すべての処理が高速です。データはメモリ内にあるため、ディスクにアクセスする必要はまったくありません。 同時実行性に関しては、Redis はマルチチャネル I/O 多重化テクノロジを使用しており、それ自体の同時実行効率は問題になりません。
もちろん、1 つの Redis プロセスで複数のコアを使用することはできません (常に 1 つの CPU コアでのみ実行できます) が、計算量をそれほど多く必要としないサービスではありません。シングルコアのパフォーマンスが十分でない場合は、さらにいくつかのプロセスを開くことができます。
Redis は、各操作のアトミック性を確保し、スレッド コンテキストの切り替えと競合を減らすためにシングル スレッド モデルを採用しています。
さらに、データ構造も非常に役立ちます。Redis はプロセス全体でハッシュ構造を使用するため、読み取り速度が速くなります。また、圧縮テーブルなど、データ ストレージを最適化する特別なデータ構造もいくつかあります。 、短いデータを圧縮して保存します。別の例としてはジャンプ テーブルがあり、順序付けされたデータ構造を使用して読み取りを高速化します。
もう 1 つのポイントは、Redis が独自のイベント セパレータを使用することです。これは比較的効率的で、内部的にノンブロッキングの実行メソッドを使用し、比較的大きなスループット容量を備えています。
文字列型、バイナリセーフ
ハッシュ型は、キーと値のペアのコレクションです
List リストの最下層はリンク リストです
セット コレクション 実装する必要はありません
zset ソート セット、ハッシュテールによる順序付きセット
#Redis 関連の技術記事の詳細については、Redis データベース使用法チュートリアル をご覧ください。学べるコラム!
以上がRedis のパフォーマンスが優れている理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。