<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                * * * * * [TOC] ## 簡介 [Redis](https://redis.io/)?是一個開源的,高級鍵值對存儲數據庫。由于它包含?[字符串](https://redis.io/topics/data-types#strings)、[哈希](https://redis.io/topics/data-types#hashes)、[列表](https://redis.io/topics/data-types#lists)、[集合](https://redis.io/topics/data-types#sets)?和?[有序集合](https://redis.io/topics/data-types#sorted-sets)?這些數據類型,所以它通常被稱為數據結構服務器。 在使用 Laravel 的 Redis 之前,你需要通過 Composer 安裝?`predis/predis`?擴展包: ~~~ composer require predis/predis ~~~ 或者,你可以通過 PECL 安裝?[PhpRedis](https://github.com/phpredis/phpredis)?PHP 擴展。這個擴展安裝起來比較復雜,但對于大量使用 Redis 的應用程序來說可能會產生更好的性能。 ### 配置 Laravel 應用的 Redis 配置都在配置文件?`config/database.php`?中。在這個文件里,你可以看到?`redis`?數組里面包含了應用程序使用的 Redis 服務器: ~~~ 'redis' => [ 'client' => 'predis', 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ], ~~~ 默認的服務器配置應該足以進行開發。當然,你也可以根據使用的環境來隨意更改這個數組。只需在配置文件中給每個 Redis 服務器指定名稱、host 和 port 即可。 #### 集群配置 如果你的程序使用 redis 服務器集群,你應該在 redis 配置文件中使用?`clusters`?鍵來定義這些集群: ~~~ 'redis' => [ 'client' => 'predis', 'clusters' => [ 'default' => [ [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ], ], ], ~~~ 默認情況下,集群可以實現跨節點間客戶端共享,允許你實現節點池以及創建大量可用內存。這里要注意,客戶端共享不會處理失敗的情況;因此,這個功能主要適用于從另一個主數據庫獲取的緩存數據。如果要使用 redis 原生集群,要在配置文件的?`options`?鍵中如下指定: ~~~ 'redis' => [ 'client' => 'predis', 'options' => [ 'cluster' => 'redis', ], 'clusters' => [ // ... ], ], ~~~ ### Predis 除了默認的?`Host`、`port`、`database`?和?`password`?這些服務配置選項之外,Predis 還支持為每個 redis 服務器定義其它的?[連接參數](https://github.com/nrk/predis/wiki/Connection-Parameters)?。如果要使用這些額外的配置選項,就將它們添加到配置文件?`config/database.php`?的 Redis 服務器配置中: ~~~ 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, 'read_write_timeout' => 60, ], ~~~ ### PhpRedis > {note} 如果你是通過 PECL 安裝 Redis PHP 擴展,就需要重命名?`config/app.php`?文件里?`Redis`?的別名。 如果要使用 Phpredis 擴展,就需要將配置文件?`config/database.php`?中 Redis 配置的?`client`?選項更改為?`phpredis`: ~~~ 'redis' => [ 'client' => 'phpredis', // 其余的 Redis 配置... ], ~~~ 除了默認的?`Host`、`port`、`database`?和?`password`?這些服務配置項之外,Phpredis 還支持以下幾個額外的連接參數:`persistent`、`prefix`、`read_timeout`?和?`timeout`。你可以將這些選項加到配置文件?`config/database.php`?中 redis 服務器配置項下: ~~~ 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, 'read_timeout' => 60, ], ~~~ ## Redis 交互 你可以調用?`Redis`?[facade](http://www.hmoore.net/tonyyu/laravel_5_6/786058)上的各種方法來與?`Redis`?進行交互。`Redis`?facade 支持動態方法,這意味著你可以在 facade 上調用任何?[Redis 命令](https://redis.io/commands)?,還能將該命令直接傳遞給?`Redis`。在本例中,通過調用?`Redis`?facade 上的?`get`?方法來調用 Redis 的?`GET`?命令: ~~~ <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Redis; 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`?facade 上調用任何的 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('my-connection'); ~~~ ### 管道命令 如果你需要在一個操作中向服務器發送很多命令,推薦你使用管道命令。`pipeline`?方法接收一個帶有 Redis 實例的?`閉包`?。你可以將所有的命令發送給這個 Redis 實例,它們都會一次過執行完: ~~~ Redis::pipeline(function ($pipe) { for ($i = 0; $i < 1000; $i++) { $pipe->set("key:$i", $i); } }); ~~~ ## 發布與訂閱 Laravel 為 Redis 的?`publish`?及?`subscribe`?提供了方便的接口。這些 Redis 命令讓你可以監聽指定「頻道」上的消息。你可以從另一個應用程序發布消息給另一個應用程序,甚至使用其它編程語言,讓應用程序和進程之間能夠輕松進行通信。 首先,我們使用?`subscribe`?方法設置頻道監聽器。我們將這個方法調用放在?[Artisan 命令](http://www.hmoore.net/tonyyu/laravel_5_6/786238)?中,因為調用?`subscribe`方法會啟動一個長時間運行的進程: ~~~ <?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Redis; 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 () { // Route logic... 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; }); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看