Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung der Redis-Caching-Technologie in PHP zur Optimierung des Lesens und Schreibens von Datenbanken

Verwendung der Redis-Caching-Technologie in PHP zur Optimierung des Lesens und Schreibens von Datenbanken

WBOY
WBOYOriginal
2023-06-20 13:48:071282Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie wird die Datenmenge immer größer und auch der Druck beim Lesen und Schreiben von Datenbanken nimmt zu. Allerdings muss unsere Benutzererfahrung jederzeit eine extrem schnelle Reaktion gewährleisten. Besonders wichtig ist die Caching-Technologie. In diesem Artikel wird erläutert, wie Sie mithilfe der Redis-Caching-Technologie das Lesen und Schreiben von PHP-Anwendungen in der Datenbank optimieren können.

1. Was ist Redis?

Redis ist einfach ein Schlüsselwertspeichersystem. Im Gegensatz zu anderen Schlüsselwert-Speichersystemen unterstützt Redis die Datenspeicherung mehrerer Datentypen (Strings, Listen, Mengen, geordnete Mengen, Hash-Tabellen) und bietet einen umfangreichen Satz an Betriebsbefehlen. Redis ist eine In-Memory-Speicherdatenbank, die auch die Datenpersistenz auf der Festplatte unterstützt und das herkömmliche Cache-System vollständig ersetzen kann.

2. Warum Redis verwenden?

Der Ablauf einer herkömmlichen Anwendung besteht normalerweise darin, dass die Anwendung Daten aus der Datenbank liest und diese dann dem Benutzer in irgendeiner Form präsentiert. Am zeitaufwändigsten ist dabei das Auslesen der Daten aus der Datenbank. Der Redis-Cache kann uns dabei helfen, einen Teil der Daten im Speicher zwischenzuspeichern, sodass wiederholte Lesevorgänge direkt aus dem Cache abgerufen werden können. Dadurch werden häufige Abfragen an die Datenbank vermieden, der Druck auf die Datenbank verringert, die Lese- und Schreibeffizienz verbessert und somit reduziert Verkürzen Sie die Reaktionszeit des Systems und verbessern Sie den Gesamtdurchsatz des Systems.

3. Wie verwende ich Redis in PHP-Anwendungen?

Bevor wir Redis verwenden, müssen wir zuerst Redis installieren. Der Redis-Installations- und PHP-Erweiterungsinstallationsprozess wird hier nicht detailliert beschrieben. Wir gehen davon aus, dass die Leser bereits Redis- und PHP-Erweiterungen installiert haben. Als nächstes stellen wir vor, wie man Redis in PHP-Anwendungen verwendet.

  1. Datencache

In der Anwendung können zwischengespeicherte Daten über die Set- und Get-Befehle von Redis festgelegt und abgerufen werden.

//设置缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);  //连接到Redis
$redis->set('name', 'redis cache'); //设置缓存
$redis->expire('name', 3600);       //设置过期时间

//获取缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); //连接到Redis
$name = $redis->get('name');         //获取缓存
if($name){                           //判断缓存是否存在
    echo $name;
}else{                               //不存在则从数据库中读取数据
    $name = 'get data from database';
    $redis->set('name', $name);
    $redis->expire('name', 3600);
    echo $name;
}

Im obigen Code ermitteln wir zunächst, ob Cache-Daten in Redis vorhanden sind. Wenn nicht, rufen Sie sie aus der Datenbank ab, legen Sie den Cache fest und legen Sie die Ablaufzeit fest.

  1. Batch-Betrieb von zwischengespeicherten Daten

Manchmal müssen wir mehrere Daten gleichzeitig zwischenspeichern. Mit den Multi- und Exec-Befehlen von Redis können wir zwischengespeicherte Daten stapelweise verarbeiten.

//批量设置缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->multi();
$redis->set('name1', 'cache1');
$redis->set('name2', 'cache2');
$redis->set('name3', 'cache3');
$redis->exec();

//批量获取缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->multi();
$redis->get('name1');
$redis->get('name2');
$redis->get('name3');
$result = $redis->exec();

Im obigen Code können wir die Befehle multi und exec verwenden, um mehrere Vorgänge zum Festlegen des Caches oder zum Abrufen mehrerer Caches auszuführen.

  1. Cache-Lese- und Schreibtrennung

In Anwendungen sind einige Datenvorgänge häufig und erfordern keine hohe Datenintegrität, wie z. B. den Anmeldestatus usw. Sie können erwägen, diese Daten und kritischere Daten wie Benutzer in Redis zwischenzuspeichern Name, Passwort, E-Mail usw. können in der Datenbank gespeichert werden. Dies hat den Vorteil, dass die Lese- und Schreibeffizienz verbessert wird und es nicht zu Inkonsistenzen der Datenbankdaten aufgrund von Änderungen in den zwischengespeicherten Daten kommt.

//缓存数据
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('login:userid', '1');       //将登录状态存储到Redis中
$redis->expire('login:userid', 3600);

//读取数据
//先从Redis中读取
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$loginUserId = $redis->get('login:userid');
//如果Redis中不存在,则从数据库中读取
if(empty($loginUserId)){
    $sql = "select id from user where username='admin'";
    $result = $mysqli->query($sql)->fetch_assoc();
    $loginUserId = $result['id'];
    //将读取到的数据存储到Redis缓存中
    $redis->set('login:userid', $loginUserId);
    $redis->expire('login:userid', 3600);
}

Im obigen Code speichern wir den Benutzeranmeldestatus in Redis. Beim Lesen wird er zuerst aus dem Redis-Cache gelesen. Wenn er nicht in Redis vorhanden ist, wird er aus der Datenbank gelesen.

4. Zusammenfassung

Der Einsatz der Redis-Caching-Technologie kann die Lese- und Schreibleistung von PHP-Anwendungen erheblich verbessern, eine Entkopplung zwischen Anwendungen und Datenbanken erreichen, die Reaktionszeit des Systems verkürzen und die Benutzererfahrung verbessern. Bei der Verwendung des Redis-Cache müssen Sie auf die Reihenfolge des Schreibens und Lesens achten und die Gültigkeitsdauer der zwischengespeicherten Daten entsprechend der tatsächlichen Situation festlegen. Es ist zu beachten, dass in Situationen hoher Parallelität, Verteilung, Cache-Lawine usw. entsprechende Betriebs- und Wartungstechnologien und -methoden kombiniert werden müssen, um die Stabilität und Zuverlässigkeit des Cache-Systems sicherzustellen.

Das obige ist der detaillierte Inhalt vonVerwendung der Redis-Caching-Technologie in PHP zur Optimierung des Lesens und Schreibens von Datenbanken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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