Der String-Datentyp von Redis ist der einfachste Datentyp, aber er ist auch die Grundlage für das Erlernen anderer Redis-Datentypen. Im Folgenden werden verschiedene Anwendungen von Redis vorgestellt.
Strombegrenzung
Die Verwendung von Redis kann den Strom begrenzen. Redis selbst verfügt über eine extrem hohe Leistung und kann einigen Anforderungen standhalten.
Verteidigen Sie sich gegen großen Datenverkehr
Heutzutage nehmen Website-Angriffe immer mehr zu. Statische Ressourcen können durch CDN geschützt werden, aber wie kann man sich dynamisch verteidigen? Programme. Nachfolgend zeigen wir eine Redis-Lösung zur Abwehr einer großen Anzahl von Anfragen.
Die Grundidee besteht darin, die Anzahl der Anfragen nach einer IP innerhalb eines bestimmten Zeitraums zu begrenzen. Beispielsweise darf die Anzahl der Anfragen nach einer IP nicht mehr als 10 Mal pro Sekunde betragen.
Der Pseudocode lautet wie folgt:
function ip_limit($cnt = 10) { $ip = $_SERVER['SERVER_ADDR']; $key = "limit:$ip:cnt"; $isExisit = $redis->set($key, 1, ['nx', 'ex'=>1]); if (!$isExisit || $redis->incr($key) <= $cnt) { // 通过 return true; } else { // 不通过 return false; } }
Bestätigungscode-Häufigkeitslimit abrufen
Der SMS-Bestätigungscode ist jetzt ein Webanwendung Standardmäßig sind an vielen Orten SMS-Bestätigungscodes erforderlich. Zum Beispiel: bei der Registrierung, beim Ändern von Passwörtern und bei einigen Vorgängen, die höhere Sicherheitsanforderungen erfordern. Natürlich ist der Erhalt von Verifizierungscodes nicht kostenlos, daher möchten wir nicht, dass Benutzer unbegrenzt Verifizierungscodes erhalten.
Wir können eine Anwendung schreiben, die die Häufigkeit des Erhalts von SMS-Bestätigungscodes begrenzt.
Füllen Sie einen Antrag aus, mit dem Sie nur einmal innerhalb einer Minute einen Bestätigungscode erhalten können. Der Pseudocode lautet wie folgt:
function code_limit($mobile, $time = 60) { $key = "limit:$mobile:cnt"; $isExisit = $redis->set($key, 1, ['nx', 'ex'=>$time]); if (!$isExisit) { // 通过 return true; } else { // 不通过 return false; } }
Sitzung speichern
Die Verwendung von Redis zum Speichern von Sitzungen ist jetzt die empfohlene Methode. Seine Vorteile sind hohe Leistung und automatische Ecstasy, wenn es abläuft. (Der PHP-eigene Session-Garbage-Collection-Mechanismus ist nicht zuverlässig und es besteht die Möglichkeit, dass Ecstasy abgelaufen ist.)
Diese Methode ist sehr einfach, ändern Sie einfach die Datei php.ini.
Suchen Sie die Zeile session.save_handler und ändern Sie sie in
session.save_handler = redis
Ändern Sie session.save_path in
session.save_path = "tcp://localhost:6379"
Wenn Sie ein Passwort für Redis festgelegt haben, ändern Sie es einfach in
session.save_path = "tcp://localhost:6379?auth=password"
Wenn es sich nicht um eine eigenständige Anwendung, sondern um eine verteilte Anwendung handelt, wie kann man dann mit Redis Sitzungen zentral verwalten?
ist auch sehr einfach. Ändern Sie einfach die Datei php.ini. Wenn die Sitzung zentral auf der Maschine 192.168.1.220 verwaltet wird, werden die php.ini-Dateien anderer Maschinen wie folgt geändert:
session.save_handler = redis session.save_path = "tcp://192.168.1.220:6379?auth=password"
Das Obige stellt nur einige Anwendungen vom Typ Redis-String vor. Entwickler können praktische Projekte und ihre kombinieren eigene Nutzen Sie Ihre Fantasie, um weitere Anwendungen zu erstellen
Das obige ist der detaillierte Inhalt vonMehrere Anwendungen des Redis-String-Typs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!