Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendung von Memcached in .net

Anwendung von Memcached in .net

黄舟
黄舟Original
2017-03-13 13:18:221335Durchsuche

1. Installation und Konfiguration des Servers

1) Extrahieren Sie die Datei nach c:memcached (Sie können auch einen beliebigen Speicherort wählen)

2) Geben Sie „c:memcachedmemcached.exe -d install“ in die Befehlszeile ein.

3) Geben Sie „c:memcachedmemcached.exe -d start“ in den Befehl ein Zeile, dieser Befehl startet Memcached, der Standard-Abhörport ist 11211

4) Sie können seine Hilfe über memcached.exe -h

anzeigen Zweitens Client-Installation und Referenz



Damit der Client den Server betreiben kann, haben wir eine Verschiedene Optionen, hier haben wir uns für die Verwendung von DLL entschieden, da die DLL-Methode schneller zu generieren ist und umständliche Einstellungen in der Konfigurationsdatei vermeidet, was bequemer ist. Für Telnet-Befehle usw. können wir sie auf der Serverseite verwenden, um Daten zu überprüfen, die Cache-Trefferquote zu überprüfen usw.

1. Referenzen zu Dll

Fügen Sie nach dem Herunterladen der DLL die Bildreferenz im Projekt hinzu

2, es können Probleme auftreten

Ich führe log4net ein Wann Beim Arbeiten mit Memcached.ClientLibray wurde es eingeführt und auch zur Klassendatei hinzugefügt. Beim Generieren wurde jedoch ein Fehler gemeldet. Nach dem Ändern der Version wurde festgestellt, dass es ein Problem mit der .net-Framework-Version war Von der unten gezeigten Version bis zum .net Framework 4 wurde es in Ordnung generiert.

Drei, detailliertes Verständnis des Memcached-Mechanismus

1. Basierend auf der C/S-Architektur , einfaches Protokoll

1) C/S-Architektur, zu diesem Zeitpunkt ist Memcached der Server, und wir können verschiedene Client-Programme verwenden, um eine Verbindung zum Memcached-Server herzustellen.

2) Die Server-Client-Kommunikation von Memcached verwendet kein XML und andere Formate, sondern ein einfaches textzeilenbasiertes Protokoll. Daher können Daten auch über Telnet auf Memcached gespeichert und abgerufen werden . .

2, Ereignisverarbeitung basierend auf Libevent

1) Libevent ist eine Reihe plattformübergreifender Ereignisverarbeitungsschnittstellenkapselungen, die mit diesen Betriebssystemen kompatibel sind System: Ereignisverarbeitung von Betriebssystemen wie Windows/Linux/BSD/Solaris.

2) Memcached verwendet libevent, um gleichzeitige Netzwerkverbindungen zu verarbeiten, wodurch die Fähigkeit erhalten bleibt, auch in Situationen mit großer Parallelität schnell zu reagieren.

3. Integrierte Speichermethode

Um die Leistung zu verbessern, werden die im Memcached gespeicherten Daten im integrierten Speicher gespeichert Speicher Speicherplatz von Memcahced. Da die Daten nur im Speicher vorhanden sind, führt ein Neustart von Memcached und ein Neustart des Betriebssystems dazu, dass alle Daten verschwinden. Darüber hinaus werden ungenutzte Caches automatisch gelöscht, nachdem die Inhaltskapazität den angegebenen Wert erreicht hat, basierend auf dem LRU-Algorithmus (Least Recent Used). Memcached selbst ist ein Server, der zum Zwischenspeichern, Verstecken und nicht zu großen Nachdenken über die Persistenz von Daten konzipiert ist.

4, clientbasiert verteilt

Obwohl Memcached ein „verteilter“ Cache-Server ist, verfügt der Server nicht über verteilte Funktionen. Einzelne Memcacheds kommunizieren nicht miteinander, um Informationen auszutauschen. Wie die Verteilung durchgeführt wird, hängt also vollständig von der Implementierung des Clients ab. Wenn Sie interessiert sind, können Sie den Hash-Algorithmus auf Baidu herunterladen.




Code-Erfahrung:


Vier, Memcached und Session

1) Sie haben unterschiedliche Lebenszyklen

2) Der Schwerpunkt der zu lösenden Probleme ist unterschiedlich

Fünftens wird Memcached und Cache

Cache verwendet . Auch die Zustandsverwaltung in Net fühlt sich ziemlich leistungsfähig an: 1. Cache-Abhängigkeiten: Sie können sich auf Dateien, Datenbanken oder Kombinationen von Abhängigkeiten verlassen und es bietet einen Benachrichtigungsmechanismus für den Datenablauf, damit wir die Daten rechtzeitig aktualisieren können, wenn sie ablaufen . 2. Verwendung des Benachrichtigungsmechanismus: In der Vergangenheit wurde der Abfragemechanismus verwendet, um festzustellen, ob die Daten abgelaufen waren. Dies ähnelte einer Schleife, um festzustellen, ob die Daten aktualisiert wurden Zeit. Aber ich habe immer das Gefühl, dass der Abfragemechanismus sehr seltsam ist. Wenn ich beispielsweise zu Hause einen Topf Wasser koche, sollte ich nicht immer prüfen, ob das Wasser kocht, sondern ich sollte prüfen, ob das Wasser kocht, und dann a Ein Geräusch wird mir sagen, dass das Wasser kocht. Dies ist, was der Benachrichtigungsmechanismus bedeutet. Sie können das Beobachtermuster überprüfen. Dieses wird häufig verwendet.

Als ich Memcached zum ersten Mal verwendet habe, habe ich aus Cache-Gründen natürlich an diesen Benachrichtigungsmechanismus gedacht. Nach der Überprüfung scheint es, dass Memcached diesen nicht hat Aktualisieren Sie sich selbst. Es kann nur der Abfragemechanismus verwendet werden. Wenn wir jedoch über die Verwendungsszenarien von Memcached nachdenken, werden wir feststellen, dass eine Ablaufzeit ausreicht.

6. Anwendbare Szenarien für Memcached

1) Sich häufig ändernde und instabile Daten müssen nicht in Echtzeit gespeichert werden (z. B. Benutzer). Online-Status, Anzahl der Online-Personen)

2) Neuigkeiten der Portal-Website usw. Ich denke, die statische Seite der Seite erfüllt immer noch nicht die Anforderungen und kann eingefügt werden Memcached (mit Jquery-AJAX-Anfrage) 🎜>

……

Sicherheitsprobleme von Memcached

Da memcached keinen integrierten Authentifizierungsmechanismus hat, können Sie sich mit anmelden Greifen Sie über Telnet auf den IP+-Port zu, und dann werden die Daten darin zu Lämmern, die geschlachtet werden. Um Hackerangriffe zu vermeiden, können wir den externen Zugriffsport auf dem zwischengespeicherten Server schließen und nur lokalen Programmen den Zugriff erlauben.

Acht, Vergleich ähnlicher Technologien

1, Redis

1) Unterstützen Sie mehr Wert Typ

2) Persistenz: Redis schreibt regelmäßig aktualisierte Daten auf die Festplatte oder schreibt Änderungsvorgänge in zusätzliche Datensatzdateien und implementiert auf dieser Basis Master-Slave (Master-Slave). Synchronisierung

3) Unterstützt Master-Slave-Synchronisierung: Daten können vom Master-Server mit einer beliebigen Anzahl von Slave-Servern synchronisiert werden, und der Slave-Server kann mit anderen Slave-Servern als Hauptserver verknüpft werden. Dadurch kann Redis eine einstufige Baumreplikation durchführen. Beim Speichern können Daten absichtlich oder unabsichtlich geschrieben werden. Da der Publish/Subscribe-Mechanismus vollständig implementiert ist, kann die Slave-Datenbank, wenn sie den Baum irgendwo synchronisiert, einen Kanal abonnieren und den vollständigen Nachrichtenfreigabedatensatz des Master-Servers empfangen. Die Synchronisierung ist hilfreich für die Skalierbarkeit und Datenredundanz von Lesevorgängen.

2, EhCache

1) Reines Java-In-Process-Caching-Framework, schnell und leistungsfähig, ist der Standard-CacheProvider in Hibernate.

2) Open Source Java Distributed Cache: Hauptsächlich für allgemeinen Cache, Java EE und Lightweight-Container. Es verfügt über Arbeits- und Festplattenspeicher, Cache-Loader, Cache-Erweiterungen, Cache-Ausnahmehandler, einen gzip-Cache-Servlet-Filter, Unterstützung für REST- und SOAP-APIs und mehr.

. . . . . . . . .

Das Obige ist der Inhalt der Memcached-Anwendung in .net. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).

Stellungnahme:
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
Vorheriger Artikel:Xamarin für alleNächster Artikel:Xamarin für alle