ホームページ > バックエンド開発 > PHPチュートリアル > nginxソースコード学習メモ(10) - 基本コンテナ - ngx_hash

nginxソースコード学習メモ(10) - 基本コンテナ - ngx_hash

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-29 09:10:54
オリジナル
885 人が閲覧しました

ngx_hash.{c|h} は、モジュール構成分析でよく使用される、nginx のより重要なハッシュ構造を実装します。ハッシュ構造は読み取り専用であり、最初の作成時に指定できるのは、そこに格納されているキーと値のペアだけであり、その後は「追加、削除、変更、確認」操作のみが実行できます。

まず、ハッシュ構造のメモリレイアウトを見てみましょう:

nginx 源码学习笔记(十)——基本容器——ngx_hash

[cpp] ビュー 普通のコピープリント?

  1. typedef struct {
  2. ngx_hash_t *hash; / 初期化するハッシュ構造へのポインタ
  3. ngx_hash_key_pt キー; 列値の関数ポインタ
  4. ngx_uint_t max_size;
  5. // 許可されるバケットの最大数
  6. ngx_uint_tbucket_size;各バケットに許可される最大スペース
  7. char
  8. ) ngx_pool_t *pool // レイダンス構造体を分散するメモリプール内で使用します
  9. ngx_pool_t*temp_pool
  10. // メモリポンド一時データスペースを割り当てる} ngx_hash_init_t; 具体的な意味 意味 理解するには写真も見てください。ここではコードは解析されませんが、面倒に見えますが、それでも非常に便利です。
  11. 一般的な操作には、ハッシュの作成とハッシュ内の検索が含まれます。 ハッシュを作成します:1. キー、値、key を使用して計算されたハッシュ値を含む、ngx_hash_key_t をメンバーとして含む配列を構築します2 として、ngx_hash_t のメンバーを含む ngx_hash_init_t 構造体の変数を構築します。ハッシュ構造には、バケット サイズ、メモリ プールなどの他の初期設定も含まれます。
  12. 3. ngx_hash_init を呼び出し、ngx_hash_init_t 構造、ngx_hash_key_t の配列、および初期化用の配列の長さを渡します。 ngx_hash_init_t のメンバーは私たちのものです検索プロセスは非常に簡単です
1. キーのハッシュ値を計算します
2. 検索にはハッシュ値とキーを同時に渡す必要があります。返されるのは値ポインタです

なお、nginxのハッシュはバケット化後の線形検索方式を採用しているため、バケット数が決まると検索効率はkey-valの総数に反比例します。ペア

以上、nginx ソースコード学習メモ (10) - 基本コンテナ - ngx_hash について、関連内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート