Heim  >  Artikel  >  Backend-Entwicklung  >  Laravel verwendet Redis, um die detaillierten Implementierungsschritte zum Lesen des Website-Cache zu implementieren

Laravel verwendet Redis, um die detaillierten Implementierungsschritte zum Lesen des Website-Cache zu implementieren

php中世界最好的语言
php中世界最好的语言Original
2018-05-17 13:54:242022Durchsuche

Dieses Mal erkläre ich Ihnen ausführlich die Implementierungsschritte von Laravel mit Redis zum Implementieren des Website-Cache-Lesens. Was sind die Vorsichtsmaßnahmen für Laravel mit Redis zum Implementieren des Website-Cache-Lesens? Werfen wir einmal einen Blick.

Einführung in Redis

Redis ist vollständig Open Source und kostenlos, entspricht dem BSD-Protokoll und ist ein leistungsstarker Schlüsselwert Datenbank. 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 110.000 Mal/s lesen und mit hoher Geschwindigkeit schreiben Es beträgt 81.000 Mal/s.

  • Rich 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 Homestead-Umgebung verwende und die virtuelle Maschine Ubuntu ist ) Ich habe diese Methode nur zur Installation verwendet. Für Windows 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

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

composer require predis/predis

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

composer require illuminate/redis (5.2.*)

Konfiguration

Wenn Lumen installiert ist

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

Redis kann als Hauptdatenbank verwendet werden, daher befinden sich die Konfigurationsinformationen von 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 Knoten im lokalen Test, 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
port Redis服务器监听的端口号 6379
password 如果服务器需要认证密码 不使用密码

database

连接时选择的数据库索引

没有设置索引

timeout

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

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

Bedeutung
Standardwert
host Server-IP-Adresse/Hostname 127.0.0.1
Port Redis-Server-Listening-Port-Nr . 6379
Passwort Wenn der Server ein Authentifizierungspasswort erfordert Verwenden Sie kein Passwort
Datenbank Der beim Herstellen der Verbindung ausgewählte Datenbankindex Kein Index ist set
Timeout Timeout für die Verbindung zum Redis-Server 5 Sekunden
read_write_timeout Timeout für Lese- und Schreibvorgänge über die Netzwerkverbindung Systemstandard (auf -1 gesetzt, wenn das Timeout nicht begrenzt ist)

read_write_timeout |通过网络连接进行读写操作的超时时间 |系统默认(不限制超时时间的话设置为-1)

另外Redis如果是作为缓存工具,还需要在config/cache.php配置redis选项:

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

这里的connection对应config/database中redis的默认主机default配置。

完成上述配置之后我们就可以在应用代码中使用Redis进行数据存取了。

看一个实例————laravel的mysql与Redis搭配

我的想法是在读取的时候会先去缓存中去查找,如果找到那就大吉大利了,找不到再去数据库中查找并且调到缓存中。

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

但是laravel的cache还提供了个remember函数

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

如果缓存有直接读取并返回,如果缓存项在缓存中不存在,则返回给 remember 方法的闭包将会被运行,而且闭包的运行结果将会被存放在缓存中。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

php微信模板消息推送步骤详解

PHP动态添加XML数据步骤详解

Das obige ist der detaillierte Inhalt vonLaravel verwendet Redis, um die detaillierten Implementierungsschritte zum Lesen des Website-Cache zu implementieren. 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