W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Redis 是開源,先進(jìn)的鍵值對保存庫。由于它可用的鍵包含了 字串、哈希、列表、集合 和 有序集合,因此常被稱作數(shù)據(jù)結(jié)構(gòu)服務(wù)器。
在使用 Redis 之前,你需要經(jīng)由 Composer 將 predis/predis
擴(kuò)展包裝在 Laravel 中。
提醒: 如果你用 PECL 安裝了 Redis PHP extension,則需要重命名
config/app.php
里的 Redis 別名。
應(yīng)用程序的 Redis 配置文件在 config/database.php
。在這個文件里,你會看到 redis 數(shù)組,里面有應(yīng)用程序使用的 Redis 服務(wù)器數(shù)據(jù):
'redis' => array( 'cluster' => true, 'default' => array('host' => '127.0.0.1', 'port' => 6379),),
默認(rèn)的服務(wù)器配置對于開發(fā)應(yīng)該是足夠的。然而,你可以根據(jù)使用環(huán)境自由修改數(shù)組數(shù)據(jù)。只要給每個 Redis 一個名稱,并且配置服務(wù)器的 host 和 port。
cluster
選項(xiàng)會讓 Laravel 的
Redis 客戶端在所有 Redis 節(jié)點(diǎn)間執(zhí)行客戶端分片( client-side sharding ),讓你建立節(jié)點(diǎn)池,并因此擁有大量的
RAM 可用。然而,客戶端分片的節(jié)點(diǎn)不能執(zhí)行容錯轉(zhuǎn)移;因此,這主要適合用可以從另一臺主要數(shù)據(jù)保存庫取得的緩存數(shù)據(jù)。
如果你的 Redis 服務(wù)器需要認(rèn)證,你可以在 Redis 服務(wù)器配置文件里加入 password
為鍵值的參數(shù)配置。
你可以經(jīng)由 Redis::connection
方法得到 Redis 實(shí)例:
$redis = Redis::connection();
你會得到一個使用 Redis 默認(rèn)服務(wù)器的實(shí)例。如果你沒有使用服務(wù)器集群,你可以在 connection
方法傳入定義在 Redis 配置文件的服務(wù)器名稱,以連到特定服務(wù)器:
$redis = Redis::connection('other');
一旦你有了 Redis 客戶端實(shí)例,就可以使用實(shí)例發(fā)出任何 Redis 命令。Laravel 使用魔術(shù)方法傳遞命令到服務(wù)器:
$redis->set('name', 'Taylor');$name = $redis->get('name');$values = $redis->lrange('names', 5, 10);
注意,傳入命令的參數(shù)僅只是傳遞到魔術(shù)方法里。當(dāng)然,你不一定要使用魔術(shù)方法,你也可以使用 command
方法傳遞命令到服務(wù)器:
$values = $redis->command('lrange', [5, 10]);
若你只想對默認(rèn)服務(wù)器下命令,可以使用 Redis
類的靜態(tài)魔術(shù)方法:
Redis::set('name', 'Taylor');$name = Redis::get('name');$values = Redis::lrange('names', 5, 10);
當(dāng)你想要一次發(fā)送很多命令到服務(wù)器時(shí)可以使用管道。使用 pipeline
方法:
Redis::pipeline(function($pipe){ for ($i = 0; $i < 1000; $i++) { $pipe->set("key:$i", $i); }});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: