Heim > Backend-Entwicklung > PHP-Tutorial > Wie Laravel Redis zum Lesen des Website-Cache verwendet

Wie Laravel Redis zum Lesen des Website-Cache verwendet

小云云
Freigeben: 2023-03-22 17:52:01
Original
2082 Leute haben es durchsucht

Redis ist vollständig Open Source und kostenlos, entspricht dem BSD-Protokoll und ist eine leistungsstarke Schlüsselwertdatenbank. Redis und andere Schlüsselwert-Caching-Produkte weisen die folgenden drei Merkmale auf: Redis unterstützt Datenpersistenz, wodurch Daten im Speicher auf der Festplatte verbleiben und beim Neustart zur Verwendung erneut geladen werden können.

Redis unterstützt nicht nur einfache Daten vom Typ Schlüsselwert, sondern bietet auch die Speicherung von Datenstrukturen wie Liste, Satz, Zset und Hash.

Redis unterstützt die Datensicherung, also die Datensicherung im Master-Slave-Modus.

Vorteile von Redis

  • Extrem hohe Leistung – Redis kann mit einer Geschwindigkeit von 110.000 Mal/s lesen . Die Schreibgeschwindigkeit beträgt 81000 Mal/s.

  • Umfangreiche Datentypen – Redis unterstützt Datentypoperationen vom Typ Strings, Listen, Hashes, Mengen und geordnete Mengen für binäre Fälle.

  • Atomar – Alle Operationen von Redis sind atomar, und Redis unterstützt auch die atomare Ausführung nach der Zusammenführung mehrerer Operationen.

  • Umfangreiche Funktionen – Redis unterstützt auch Publish/Subscribe, Benachrichtigungen, Schlüsselablauf und andere Funktionen.

So installieren Sie Redis

1. Ubuntu (da ich die virtuelle Maschine der Homestead-Umgebung verwende Ist Ubuntu nur diese Methode zur Installation verwendet, gehen Sie bitte zu http://www.redis.net.cn/tutor oder http://www.jb51.net/article/84071.htm... )

Offizielle Ubuntu-Installationsmethode


$sudo apt-get update
$sudo apt-get install redis-server
Nach dem Login kopieren

Da meine Website das Laravel-Framework verwendet, muss ich die Composer-Methode verwenden, um es zu installieren


composer require predis/predis
Nach dem Login kopieren

Wenn Sie das Lumen-Mikroframework installieren, müssen Sie auch illuminate/redis (5.2.*) installieren


composer require illuminate/redis (5.2.*)
Nach dem Login kopieren

Konfiguration

Wenn Lumen installiert ist


//需要在bootstrap/app.php里面加入此段代码
$app->register(Illuminate\Redis\RedisServiceProvider::class);
$app->configure('database');
Nach dem Login kopieren

Redis kann als Hauptdatenbank verwendet werden, daher befinden sich die Konfigurationsinformationen von Redis in Laravel in config/database.php:


'redis' => [
'cluster' => false,
'default' => [
 'host' => '127.0.0.1',
 'port' => 6379,
 'database' => 0,
],
],
Nach dem Login kopieren

Die Cluster-Option gibt an, ob zwischen Shards unterschieden werden soll Hier gibt es mehrere Redis-Knoten. Unser lokaler Test hat nur einen Knoten, daher setzen wir ihn auf „false“.

Die Standardoption gibt die standardmäßige Redis-Hostverbindung an. Hier teilen sich Redis und der Webserver einen Host, sodass der Host 127.0.0.1 und der standardmäßige Redis-Port 6379 ist.

Darüber hinaus unterstützt die Standardoption auch weitere Verbindungsparameter (falls erforderlich):

Parameters
参数

意义

默认值
host服务器IP地址/主机名称127.0.0.1
portRedis服务器监听的端口号6379
password如果服务器需要认证密码不使用密码

database

连接时选择的数据库索引

没有设置索引

timeout

连接到Redis服务器超时时间5秒
read_write_timeout通过网络连接进行读写操作的超时时间

系统默认(不限制超时时间的话设置为-1)

Bedeutung

Standardwert
HostServer-IP-Adresse/Host Name127.0.0.1
PortPortnummer, die vom Redis-Server abgehört wird6379
PasswortWenn der Server ein Authentifizierungspasswort erfordertVerwenden Sie kein Passwort

Datenbank

Der beim Herstellen der Verbindung ausgewählte Datenbankindex

Es ist kein Index festgelegt

timeout

Timeout für die Verbindung zum Redis-Server5 Sekunden
read_write_timeoutPassiertes Timeout für Lese- und Schreibvorgänge der Netzwerkverbindung

Systemstandard (auf -1 gesetzt, wenn das Timeout nicht begrenzt ist)
'redis' => [

'driver' => 'redis',
'connection' => 'default',
],
Nach dem Login kopieren

read_write_timeout |Timeout für Lese- und Schreibvorgänge über Netzwerkverbindung|Systemstandard (auf -1 gesetzt, wenn das Timeout nicht begrenzt ist )

Wenn Redis außerdem als Caching-Tool verwendet wird, müssen Sie auch die Redis-Option in config/cache.php konfigurieren:


Die Verbindung hier entspricht der Standard-Redis in config/database Host-Standardkonfiguration.

Nach Abschluss der obigen Konfiguration können wir Redis für den Datenzugriff im Anwendungscode verwenden.


Schauen Sie sich ein Beispiel an – Laravels MySQL ist mit Redis gepaart
 if (Cache::has($key)){    //首先查寻cache如果找到
  $values = Cache::get($>key); //直接读取cache
  return $values;
 }else{         //如果cache里面没有  
  $values = DB::select($sql);
  Cache::put($key,$value,$time);
  return $values;
 }
Nach dem Login kopieren


Meine Idee ist, beim Lesen zuerst zum Cache zu gehen Wenn Sie es finden, haben Sie Glück. Wenn Sie es nicht finden können, gehen Sie zur Suche und übertragen Sie es in den Cache.

 $values = Cache::remember($key,$time,function () {
   return DB::select($this->sql);
  });
Nach dem Login kopieren


Der Cache von Laravel bietet aber auch eine Merkfunktion

Wenn der Cache direktes Lesen hat und zurückgeben. Wenn das Cache-Element nicht im Cache vorhanden ist, wird die an die Erinnerungsmethode zurückgegebene Schließung ausgeführt und das Ergebnis der Schließung im Cache gespeichert. Verwandte Empfehlungen:

Eine PHP-Website, die Code-Sharing zwischenspeichert

Das obige ist der detaillierte Inhalt vonWie Laravel Redis zum Lesen des Website-Cache verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage