Heim > Backend-Entwicklung > PHP-Tutorial > Nginx-Quellcode-Studiennotizen (10) – Basiscontainer – ngx_hash

Nginx-Quellcode-Studiennotizen (10) – Basiscontainer – ngx_hash

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-07-29 09:10:54
Original
870 Leute haben es durchsucht

ngx_hash.{c|h} implementiert eine wichtigere Hash-Struktur in Nginx, die häufig in der Modulkonfigurationsanalyse verwendet wird. Die Hash-Struktur ist schreibgeschützt. Bei der ersten Erstellung können nur die darin gespeicherten Schlüssel-Wert-Paare angegeben werden, und dann können nur die Vorgänge „Hinzufügen, Löschen, Ändern und Überprüfen“ ausgeführt werden.

Sehen wir uns zunächst das Speicherlayout der Hash-Struktur an:

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

[cpp] Ansicht Klartext?

  1. typedef struct
  2. ngx_hash_t *hash; ngx_hash_key_pt key;                                s
  3. ngx_uint_t Bucket_size; //Der maximal zulässige Platz für jeden Bucket
  4. char *name; Hash-Name (wird nur in Fehlerprotokollen verwendet)
  5. ngx_pool_t *pool;//Speicherpool zur Zuweisung von Hash-Strukturraum
  6. ngx_pool_t * temp_pool; //Speicherpool zur Zuweisung von temporärem Datenraum
  7. } ngx_hash_init_t; Der Code wird hier nicht analysiert. Obwohl er umständlich aussieht, ist er dennoch recht praktisch. Zu den allgemeinen Vorgängen gehören das Erstellen von Hash und die Suche im Hash. Hash erstellen:
  8. 1. Erstellen Sie ein Array mit ngx_hash_key_t als Mitglied, einschließlich Schlüssel, Wert und einem mithilfe des Schlüssels berechneten Hash-Wert
  9. 2. Erstellen Sie eine ngx_hash_init_t-Strukturvariablen des Körpers, der Mitglieder von ngx_hash_t enthält, sind Hash-Strukturen und enthalten auch einige andere Anfangseinstellungen, wie z. B. Bucket-Größe, Speicherpool usw. 3 Rufen Sie ngx_hash_init auf und übergeben Sie die ngx_hash_init_t-Struktur und die Array von ngx_hash_key_t und die Länge des Arrays, initialisieren Sie es, sodass das Hash-Mitglied von ngx_hash_init_t die gewünschte Hash-Struktur istDer Suchvorgang ist sehr einfach
  10. 1 Berechnen Sie den Hash Wert des Schlüssels
  11. 2. Verwenden Sie ngx_hash_find, um zu suchen. Sie müssen den Hash-Wert und den Schlüssel gleichzeitig übergeben. Was zurückgegeben wird, ist der WertzeigerEs ist zu beachten, dass nginx Hash verwendet nach dem Bucketing bei der Suche die lineare Suchmethode. Wenn die Anzahl der Buckets bestimmt wird, ist die Sucheffizienz umgekehrt proportional zur Gesamtzahl der Schlüssel-Wert-Paare Das Obige stellt die Nginx-Quellcode-Studiennotizen (10) – Basiscontainer – ngx_hash vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.
Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage