(1) Redis は非リレーショナル インメモリ データベースです データはメモリに保存されます メモリの読み取り速度は非常に高速です 単純な Key-Value の場合、メモリがボトルネックではありません。通常の状況では、ハッシュ ルックアップは 1 秒あたり数百万回のオーダーに達することがあります。
(2) 不必要なコンテキストの切り替えや競合状態を避けるために、単一のスレッドを使用します。
(3) 内部実装では epoll を使用し、epoll 自体によって実装された単純なイベント フレームワークを使用します。 epoll での読み取り、書き込み、クローズ、接続はすべてイベントに変換され、epoll の多重化機能を使用して io に時間を無駄にすることはありません。
詳細情報
Redis は、ANSI C 言語で書かれたオープンソースのログタイプの Key-Value データベースであり、ネットワークをサポートしており、メモリまたはまた、複数の言語で API を提供します。 2010 年 3 月 15 日以降、Redis の開発は VMware によってホストされています。 2013 年 5 月以来、Redis の開発は Pivotal によって後援されています。
Redis は、キーと値のストレージ システムです。 Memcached と同様に、string (文字列)、list (リンク リスト)、set (セット)、zset (並べ替えられたセット - 順序付きセット)、および hash (ハッシュ タイプ) など、比較的多くの保存された値の種類をサポートします。これらのデータ型はすべて、プッシュ/ポップ、追加/削除、交差、結合、差分などの豊富な操作をサポートしており、これらの操作はすべてアトミックです。これに基づいて、redis はさまざまな並べ替え方法をサポートします。 memcached と同様に、データは効率を確保するためにメモリにキャッシュされます。違いは、redis が更新されたデータを定期的にディスクに書き込むか、追加のレコード ファイルに変更操作を書き込むこと、そしてこれに基づいてマスターとスレーブ (マスターとスレーブ) の同期が実現されることです。
Redis は、高性能のキー/値データベースです。 Redis の出現により、memcached などのキー/値ストレージの欠点が大幅に補われ、状況によってはリレーショナル データベースに対して非常に優れた補完的な役割を果たすことができます。 Java、C/C、C#、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlang およびその他のクライアントを提供しており、非常に使いやすいです。
Redis はマスター/スレーブ同期をサポートしています。データはマスター サーバーから任意の数のスレーブ サーバーに同期でき、スレーブ サーバーは他のスレーブ サーバーに関連付けられたマスター サーバーになることができます。これにより、Redis は単一レベルのツリー レプリケーションを実行できるようになります。保存すると、意図的または非意図的にデータが書き込まれる可能性があります。パブリッシュ/サブスクライブ メカニズムが完全に実装されているため、スレーブ データベースが任意の場所でツリーを同期すると、チャネルにサブスクライブして、マスター サーバーの完全なメッセージ リリース レコードを受信できます。同期は、読み取り操作のスケーラビリティとデータ冗長性に役立ちます。
redis の公式 Web サイトのアドレスは非常に覚えやすいです。redis.io です。 (具体的に調べてみたところ、ドメイン名サフィックス io は国内ドメイン名であり、英領インド洋領土であることがわかりました)。
現在、Vmware は Redis プロジェクトの開発と保守に資金を提供しています。
#Redis 関連の技術記事の詳細については、Redis チュートリアル## 列にアクセスして学習してください。
以上がRedis のパフォーマンスがこれほど高いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。