Garnet Code Structure
In der folgenden Liste beschreiben wir die C#-Projekte, die Teil der Garnet Visual Studio-Projektmappe sind, sowie die Ordner, die sie enthalten.
- \.azure\pipelines folder
- Beschreibung: Enthält .yml-Dateien und andere Ressourcen für die Ausführung von CI/CD-Pipelines in Azure DevOps.
- \.github\workflows folder
- Beschreibung: Enthält .yml-Dateien und andere Ressourcen für die Ausführung von CI/CD-Pipelines in GitHub Actions.
- \benchmark folder
- BDN.benchmark
- Beschreibung: Ein Benchmarking-Tool, das die BenchmarkDotNet-Bibliothek verwendet. Dies ist derzeit das bevorzugte Tool für das Benchmarking verschiedener Garnet-Funktionalitäten. Verwenden Sie die Argumente der Befehlszeile, um Ihre Ausführung zu konfigurieren.
- Resp.benchmark
- Beschreibung: Ein Benchmark-Tool zur Ausgabe von RESP-Befehlen an den Garnet-Server. Weitere Details finden Sie auf der Resp-Benchmark-Seite hier.
- BDN.benchmark
- \charts\garnet folder
- Beschreibung: Enthält ein Helm-Chart für Garnet.
- \hosting\Windows folder
- Garnet.worker
- Beschreibung: Eine App zum Hosten von Garnet als Windows-Dienst.
- Garnet.worker
- \libs folder
- storage\Tsavorite folder
- Beschreibung: Projektmappe, Quellcodes und Tests für die Tsavorite-Bibliothek.
- Garnet.client project
- Beschreibung: Clients, die mit dem Garnet-Server mit eingeschränkter Funktionalität verwendet werden können.
- Garnet.cluster project
- Beschreibung: Die Garnet Cluster-Implementierung.
- Garnet.common project
- Beschreibung: Netzwerkschicht-Implementierung und allgemeine Tools, die für die Verarbeitung von Anfragen und Antworten verwendet werden.
- Garnet.host project
- Beschreibung: Die Hosting-Klasse, die den Garnet-Server instanziiert.
- Garnet.resources project
- Beschreibung: Enthält große Textressourcen, die bei Bedarf dynamisch geladen werden können, um die Garnet-Binärdateien nicht zu überlasten.
- Garnet.server project
- Beschreibung: Sämtliche APIs für die Schlüsseloperationen, ACL-Befehle, Checkpointing, Metriken, Transaktionen, die Garnet-Server-API und die Speicherimplementierung mit RESP.
- storage\Tsavorite folder
- \main folder
- GarnetServer project
- Beschreibung: Das Hauptprogramm (Einstiegspunkt), in dem die Garnet-Server-ausführbare Datei mithilfe des Hosts erstellt wird.
- GarnetServer project
- \metrics folder
- HdrHistogram project
- Beschreibung: Projekt zur Erstellung von High Dynamic Range (HDR) Histogrammen, die für Diagramme verschiedener Servermetriken verwendet werden.
- HdrHistogram project
- \playground folder
- Bitmap project
- Beschreibung: Ein Projekt, das verschiedene Bitmap-Operationen mit Tsavorite ausführt.
- ClusterStress project
- Beschreibung: Ein Projekt in Arbeit, das Lasttests für einen Garnet-Server im Cluster-Modus ausführt.
- CommandInfoUpdater project
- Beschreibung: Ein Tool zur Aktualisierung von RESP-Befehlsmetadaten (Infos, Dokumentation) mithilfe eines lokalen RESP-Servers (Anweisungen zur Verwendung finden Sie unter: Hinzufügen von Befehlsinformationen).
- Embedded.perftest project
- Beschreibung: Ein Tool zur Ausgabe von RESP-Befehlen an den Garnet-Server, wobei der Netzwerkstapel umgangen wird.
- GarnetClientStress project
- Beschreibung: Ein Projekt zum Ausführen von Lasttests gegen die GarnetClient-Bibliothek.
- GarnetJSON project
- Beschreibung: Eine Bibliothek, die ein Beispiel-Garnet-Modul definiert, das Operationen auf JSON-Zeichenfolgen ausführen kann.
- MigrateBench project
- Beschreibung: Ein Tool, das entwickelt wurde, um die Leistung und Robustheit des Migrationsvorgangs zu testen, indem Batch-Migrationsanfragen zwischen mehreren Knoten ausgeführt werden.
- SampleModule project
- Beschreibung: Eine Bibliothek, die ein Beispiel-Garnet-Modul definiert, das benutzerdefinierte Befehle, Transaktionen und Prozeduren ausführen kann.
- TstRunner project
- Beschreibung: Konsolenanwendung zum Ausführen von Schlüsselmigrationsbefehlen.
- Bitmap project
- \samples folder
- GarnetClientSample project
- Beschreibung: Beispiel für die Verwendung von GarnetClient.
- MetricsMonitor project
- Beschreibung: Konsolen-App zum Abrufen von Latenzmetriken mit StackExchange.Redis.
- GarnetClientSample project
- \test folder
- Garnet.test project
- Beschreibung: Projekt für Garnet-Server-Unit-Tests, einschließlich Unit-Tests von RESP-Befehlen.
- Garnet.test.cluster project
- Beschreibung: Projekt für Cluster-Unit-Tests.
- testcerts folder
- Beschreibung: Selbstsignierte Zertifikate für Testzwecke, wenn TLS aktiviert ist.
- Garnet.test project
- \website folder
- Beschreibung: Dateien für die Dokumentationswebsite von Garnet.
- root folder
- Beschreibung: Editorconfig-Datei, Docker-Dateien usw.