Heim Backend-Entwicklung C#.Net-Tutorial Redis-Tutorial (11): Einführung in den virtuellen Speicher

Redis-Tutorial (11): Einführung in den virtuellen Speicher

Dec 28, 2016 pm 03:04 PM
redis

1. Einführung:

Wie die meisten NoSQL-Datenbanken folgt auch Redis dem Schlüssel/Wert-Datenspeichermodell. In einigen Fällen speichert Redis Schlüssel/Werte im Speicher, um die Effizienz der Datenabfrage und Datenänderung zu verbessern. Dieser Ansatz ist jedoch nicht immer eine gute Wahl. Vor diesem Hintergrund können wir es weiter optimieren, dh versuchen, nur die Schlüsseldaten im Speicher zu behalten, um die Effizienz des Datenabrufs sicherzustellen, und die Wertedaten können in seltenen Fällen auf die Festplatte ausgelagert werden gebraucht.
In tatsächlichen Anwendungen sind nur etwa 10 % der Schlüssel relativ häufig verwendete Schlüssel, sodass Redis die verbleibenden, weniger häufig verwendeten Schlüssel und Werte über den virtuellen Speicher auf die Festplatte auslagern und diese nach dem Auslagern als Schlüssel verwenden kann oder Werte müssen gelesen werden, Redis liest sie wieder zurück in den Hauptspeicher.

2. Anwendungsszenarien:

Für die meisten Datenbanken ist es am besten, alle Daten in den Speicher zu laden, und nachfolgende Abfragevorgänge können vollständig auf dem Speicher basieren. In der Realität kommt dieses Szenario jedoch nicht häufig vor. In den meisten Fällen kann nur ein Teil der Daten in den Speicher geladen werden.
In Redis gibt es ein sehr wichtiges Konzept: Schlüssel werden im Allgemeinen nicht ausgetauscht. Wenn sich also eine große Anzahl von Schlüsseln in Ihrer Datenbank befindet und jeder Schlüssel nur einem kleinen Wert zugeordnet ist, ist dies der Fall Nicht ideal für die Verwendung des virtuellen Speichers. Wenn die Datenbank hingegen nur eine kleine Anzahl von Schlüsseln enthält, der jedem Schlüssel zugeordnete Wert jedoch sehr groß ist, eignet sich dieses Szenario perfekt für die Verwendung von virtuellem Speicher.
In tatsächlichen Anwendungen können wir Schlüssel mit vielen kleineren Werten in Schlüssel mit wenigen größeren Werten zusammenführen, damit der virtuelle Speicher eine umfassendere Rolle spielt und uns hilft, die Betriebseffizienz des Systems zu verbessern. Die wichtigste Methode besteht darin, den ursprünglichen Schlüssel/Wert-Modus in einen Hash-basierten Modus zu ändern, der es ermöglicht, dass viele ursprüngliche Schlüssel zu Attributen im Hash werden.

3. Konfiguration:

1). Fügen Sie die folgenden Konfigurationselemente in die Konfigurationsdatei ein, um dem aktuellen Redis-Server die Aktivierung der virtuellen Speicherfunktion zu ermöglichen.
vm-enabled ja

2). Legen Sie die maximale Anzahl der für Redis verfügbaren virtuellen Speicherbytes in der Konfigurationsdatei fest. Wenn die Daten im Speicher größer als dieser Wert sind, werden einige Objekte auf die Festplatte ausgelagert und der von den ausgelagerten Objekten belegte Speicher wird erst dann freigegeben, wenn der verwendete Speicher kleiner als dieser Wert ist.

     vm-max-memory (bytes)
Nach dem Login kopieren

Die Austauschregel von Redis besteht darin, zu versuchen, die „ältesten“ Daten zu berücksichtigen, d. h. die Daten, die am längsten nicht verwendet wurden, werden ausgetauscht. Wenn das Alter der beiden Objekte gleich ist, werden die Daten mit dem größeren Wert zuerst ausgetauscht. Es ist zu beachten, dass Redis keine Schlüssel auf die Festplatte austauscht. Wenn also die Schlüsseldaten allein den gesamten virtuellen Speicher füllen, ist dieses Datenmodell nicht für die Verwendung des virtuellen Speichermechanismus geeignet, oder der Wert muss höher eingestellt werden. Groß, um die gesamten Keys-Daten unterzubringen. Wenn wir in tatsächlichen Anwendungen die Verwendung des virtuellen Redis-Speichers in Betracht ziehen, sollten wir Redis so viel Speicher wie möglich zuweisen, um häufiges Ein- und Auslagern zu vermeiden.

3) Legen Sie die Anzahl der Seiten und die Anzahl der von jeder Seite belegten Bytes in der Konfigurationsdatei fest. Um Daten vom Speicher auf die Festplatte zu übertragen, müssen wir eine Auslagerungsdatei verwenden. Diese Dateien haben nichts mit der Datenpersistenz zu tun und Redis löscht sie alle, bevor es beendet wird. Da die meisten Zugriffe auf Auslagerungsdateien wahlfrei erfolgen, wird empfohlen, die Auslagerungsdatei auf einer Solid-State-Festplatte zu speichern, was die Betriebseffizienz des Systems erheblich verbessern kann

vm-pages 134217728
    vm-page-size 32
Nach dem Login kopieren

In der obigen Konfiguration Redis Die Auslagerungsdatei wird in VM-Seiten unterteilt. Die von jeder Seite belegten Bytes sind VM-Seitengröße. Die endgültige für Redis verfügbare Auslagerungsdateigröße beträgt dann: VM-Seiten * VM-Seitengröße. Da ein Wert auf einer oder mehreren Seiten gespeichert werden kann, eine Seite jedoch nicht mehrere Werte enthalten kann, müssen wir diese Funktion von Redis beim Festlegen der VM-Seitengröße vollständig berücksichtigen.

4). In der Redis-Konfigurationsdatei gibt es einen sehr wichtigen Konfigurationsparameter, nämlich:

    vm-max-threads 4
Nach dem Login kopieren

CPU cores。如果将该值设置为0,那么Redis在与交换文件进行IO交互时,将以同步的方式执行此操作。
    对于Redis而言,如果操作交换文件是以同步的方式进行,那么当某一客户端正在访问交换文件中的数据时,其它客户端如果再试图访问交换文件中的数据,该客户端的请求就将被挂起,直到之前的操作结束为止。特别是在相对较慢或较忙的磁盘上读取较大的数据值时,这种阻塞所带来的影响就更为突兀了。然而同步操作也并非一无是处,事实上,从全局执行效率视角来看,同步方式要好于异步方式,毕竟同步方式节省了线程切换、线程间同步,以及线程拉起等操作产生的额外开销。特别是当大部分频繁使用的数据都可以直接从主内存中读取时,同步方式的表现将更为优异。
    如果你的现实应用恰恰相反,即有大量的换入换出操作,同时你的系统又有很多的cores,有鉴于此,你又不希望客户端在访问交换文件之前不得不阻塞一小段时间,如果确实是这样,我想异步方式可能更适合于你的系统。
    至于最终选用哪种配置方式,最好的答案将来自于不断的实验和调优。

以上就是Redis教程(十一):虚拟内存介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So löschen Sie Redis -Daten So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So verwenden Sie Redis Lock So verwenden Sie Redis Lock Apr 10, 2025 pm 08:39 PM

Um die Operationen zu sperren, muss die Sperre durch den Befehl setNX erfasst werden und dann den Befehl Ablauf verwenden, um die Ablaufzeit festzulegen. Die spezifischen Schritte sind: (1) Verwenden Sie den Befehl setNX, um zu versuchen, ein Schlüsselwertpaar festzulegen; (2) Verwenden Sie den Befehl Ablauf, um die Ablaufzeit für die Sperre festzulegen. (3) Verwenden Sie den Befehl Del, um die Sperre zu löschen, wenn die Sperre nicht mehr benötigt wird.

So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

So verwenden Sie die Befehlszeile der Redis So verwenden Sie die Befehlszeile der Redis Apr 10, 2025 pm 10:18 PM

Verwenden Sie das Redis-Befehlszeilen-Tool (REDIS-CLI), um Redis in folgenden Schritten zu verwalten und zu betreiben: Stellen Sie die Adresse und den Port an, um die Adresse und den Port zu stellen. Senden Sie Befehle mit dem Befehlsnamen und den Parametern an den Server. Verwenden Sie den Befehl Hilfe, um Hilfeinformationen für einen bestimmten Befehl anzuzeigen. Verwenden Sie den Befehl zum Beenden, um das Befehlszeilenwerkzeug zu beenden.

So konfigurieren Sie die Ausführungszeit der Lua -Skript in CentOS Redis So konfigurieren Sie die Ausführungszeit der Lua -Skript in CentOS Redis Apr 14, 2025 pm 02:12 PM

Auf CentOS -Systemen können Sie die Ausführungszeit von LuA -Skripten einschränken, indem Sie Redis -Konfigurationsdateien ändern oder Befehle mit Redis verwenden, um zu verhindern, dass bösartige Skripte zu viele Ressourcen konsumieren. Methode 1: Ändern Sie die Redis -Konfigurationsdatei und suchen Sie die Redis -Konfigurationsdatei: Die Redis -Konfigurationsdatei befindet sich normalerweise in /etc/redis/redis.conf. Konfigurationsdatei bearbeiten: Öffnen Sie die Konfigurationsdatei mit einem Texteditor (z. B. VI oder Nano): Sudovi/etc/redis/redis.conf Setzen Sie die LUA -Skriptausführungszeit.

See all articles