Heim  >  Artikel  >  Backend-Entwicklung  >  Über die Methode von Laravel, Redis zum Implementieren des Website-Cache-Lesens zu verwenden

Über die Methode von Laravel, Redis zum Implementieren des Website-Cache-Lesens zu verwenden

不言
不言Original
2018-06-13 09:46:312148Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen über die Verwendung von Redis zur Implementierung des Website-Cache-Lesens vor. Der Artikel stellt es im Detail anhand des Beispielcodes vor. Es hat einen gewissen Referenz-Lernwert für alle, die es brauchen und gemeinsam lernen.

Einführung in Redis

Redis ist vollständig Open Source und kostenlos, entspricht dem BSD-Protokoll und ist leistungsstark Schlüsselwertdatenbank. Redis und andere Key-Value-
Caching-Produkte weisen die folgenden drei Merkmale auf: Redis unterstützt die Datenpersistenz, wodurch die 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, daher habe ich nur diese Methode zur Installation verwendet)

Die offizielle Ubuntu-Installationsmethode

$sudo apt-get update
$sudo apt-get install redis-server

Wegen meiner Website Das Laravel-Framework wird verwendet und Sie müssen die Composer-Methode verwenden, um

composer require predis/predis

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

composer require illuminate/redis (5.2.*)

Konfiguration

Wenn Lumen ist installiert

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

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,
],
],

Die Cluster-Option gibt an, ob Sharding zwischen mehreren Redis-Knoten durchgeführt werden soll. Hier haben wir nur einen Knoten im lokalen Test, also 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
port Redis服务器监听的端口号 6379
password 如果服务器需要认证密码 不使用密码

database

连接时选择的数据库索引

没有设置索引

timeout

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

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

Bedeutung

Standardwert
Host Server-IP-Adresse/Host Name 127.0.0.1
Port Portnummer, die vom Redis-Server abgehört wird 6379 td >
Passwort Wenn der Server ein Authentifizierungspasswort erfordert Verwenden 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-Server 5 Sekunden
read_write_timeout td> Passiertes Timeout für Lese- und Schreibvorgänge der Netzwerkverbindung Systemstandard (auf -1 gesetzt, wenn das Timeout nicht begrenzt ist)

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

Zusätzlich zu Redis Wenn es als Caching-Tool verwendet wird, müssen Sie auch die Redis-Option in config/cache.php konfigurieren:

'redis' => [

'driver' => 'redis',
'connection' => 'default',
],

Die Verbindung entspricht hier dem Standard-Host-Standard von Redis in der Konfiguration/Datenbankkonfiguration.

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

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 Datenbank, um es zu suchen und in den Cache zu übertragen.

 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;
 }

Aber der Cache von Laravel bietet auch eine Erinnerungsfunktion

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

Wenn zwischengespeichert. Gibt es Direktes Lesen 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.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen:

Über die Bindungsoperationen von Laravel-Framework-Routen und -Controllern

Für den Lebenszyklus des Laravel-Frameworks und Prinzipanalyse

Das obige ist der detaillierte Inhalt vonÜber die Methode von Laravel, Redis zum Implementieren des Website-Cache-Lesens zu verwenden. 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
Vorheriger Artikel:So verwenden Sie Arrays in PHPNächster Artikel:So verwenden Sie Arrays in PHP