[ Laravel 5.2 文档 ] 服务 -- Redis
1、简介
Redis是一个开源的、高级的键值对存储系统,经常被用作数据结构服务器,因为其支持 字符串、 Hash、 列表、 集合和 有序集合等数据结构。在Laravel中使用Redis之前,需要通过Composer安装 predis/predis包(~1.0)。
配置
应用的Redis配置位于配置文件 config/database.php。在这个文件中,可以看到包含被应用使用的Redis服务器的 redis数组:
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],],
默认服务器配置可以满足开发需要,然而,你可以基于环境随意修改该数组,只需要给每个Redis服务器一个名字并指定该Redis服务器使用的主机和接口。
cluster选项告诉Laravel Redis 客户端在多个Redis节点间执行客户端分片,从而形成节点池并创建大量有效的RAM。然而,客户端分片并不处理故障转移,所以,非常适合从另一个主数据存储那里获取有效的缓存数据。
此外,你可以在Redis连接定义中定义options数组值,从而允许你指定一系列Predis 客户端选项。
如果Redis服务器要求认证信息,你可以通过添加 password配置项到Redis服务器配置数组来提供密码。
注意:如果你通过PECL安装PHP的Redis扩展,需要在 config/app.php文件中修改Redis的别名。
2、基本使用
你可以通过调用 Redis门面上的多个方法来与Redis进行交互,该门面支持动态方法,所以你可以任何 Redis命令,该命令将会直接传递给Redis,在本例中,我们通过调用 Redis门面上的 get方法来调用Redis上的GET命令:
<?phpnamespace App\Http\Controllers;use Redis;use App\Http\Controllers\Controller;class UserController extends Controller{ /** * 显示指定用户属性 * * @param int $id * @return Response */ public function showProfile($id) { $user = Redis::get('user:profile:'.$id); return view('user.profile', ['user' => $user]); }}
当然,如上所述,可以在 Redis门面上调用任何Redis命令。Laravel使用魔术方法将命令传递给Redis服务器,所以只需简单传递参数和Redis命令如下:
Redis::set('name', 'Taylor');$values = Redis::lrange('names', 5, 10);
此外还可以使用 command方法传递命令到服务器,该方法接收命令名作为第一个参数,参数值数组作为第二个参数:
$values = Redis::command('lrange', ['name', 5, 10]);
使用多个Redis连接
你可以通过调用 Redis::connection方法获取Redis实例:
$redis = Redis::connection();
这将会获取默认Redis服务器实例,如果你没有使用服务器集群,可以传递服务器名到 connection方法来获取指定Redis配置中定义的指定服务器:
$redis = Redis::connection('other');
管道命令
当你需要在一次操作中发送多个命令到服务器的时候应该使用管道, pipeline方法接收一个参数:接收Redis实例的闭包。你可以将所有Redis命令发送到这个Redis实例,然后这些命令会在一次操作中被执行:
Redis::pipeline(function ($pipe) { for ($i = 0; $i < 1000; $i++) { $pipe->set("key:$i", $i); }});
3、 发布/ 订阅
Redis还提供了调用Redis的 publish和 subscribe命令的接口。这些Redis命令允许你在给定“频道”监听消息,你可以从另外一个应用发布消息到这个频道,甚至使用其它编程语言,从而允许你在不同的应用/进程之间轻松通信。
首先,让我们使用 subscribe方法通过Redis在一个频道上设置监听器。由于调用 subscribe方法会开启一个常驻进程,我们将在Artisan命令中调用该方法:
<?phpnamespace App\Console\Commands;use Redis;use Illuminate\Console\Command;class RedisSubscribe extends Command{ /** * 控制台命令名称 * * @var string */ protected $signature = 'redis:subscribe'; /** * 控制台命令描述 * * @var string */ protected $description = 'Subscribe to a Redis channel'; /** * 执行控制台命令 * * @return mixed */ public function handle() { Redis::subscribe(['test-channel'], function($message) { echo $message; }); }}
现在,我们可以使用 publish发布消息到该频道:
Route::get('publish', function () { // 路由逻辑... Redis::publish('test-channel', json_encode(['foo' => 'bar']));});
通配符订阅
使用 psubscribe方法,你可以订阅到一个通配符定义的频道,这在所有相应频道上获取所有消息时很有用。 $channel名将会作为第二个参数传递给提供的回调闭包:
Redis::psubscribe(['*'], function($message, $channel) { echo $message;});Redis::psubscribe(['users.*'], function($message, $channel) { echo $message;});

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Lange URLs, die oft mit Schlüsselwörtern und Tracking -Parametern überfüllt sind, können Besucher abschrecken. Ein URL -Verkürzungsskript bietet eine Lösung, die präzise Links erstellt, die ideal für soziale Medien und andere Plattformen sind. Diese Skripte sind für einzelne Websites a wertvoll

Nach seiner hochkarätigen Akquisition durch Facebook im Jahr 2012 nahm Instagram zwei APIs für den Einsatz von Drittanbietern ein. Dies sind die Instagram -Graph -API und die Instagram Basic Display -API. Ein Entwickler, der eine App erstellt, die Informationen von a benötigt

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Dies ist der zweite und letzte Teil der Serie zum Aufbau einer Reaktionsanwendung mit einem Laravel-Back-End. Im ersten Teil der Serie haben wir eine erholsame API erstellt, die Laravel für eine grundlegende Produktlistenanwendung unter Verwendung von Laravel erstellt hat. In diesem Tutorial werden wir Dev sein

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Die 2025 PHP Landscape Survey untersucht die aktuellen PHP -Entwicklungstrends. Es untersucht Framework -Nutzung, Bereitstellungsmethoden und Herausforderungen, die darauf abzielen, Entwicklern und Unternehmen Einblicke zu geben. Die Umfrage erwartet das Wachstum der modernen PHP -Versio
