天天看點

最新 laravel5.8 連接配接redis叢集簡介配置叢集配置PredisPhpRedis

簡介

Redis 是一個開源的,進階鍵值對存儲資料庫。由于它包含 字元串 , 哈希 , 清單 , 集合 , 和 有序集合 這些資料類型,是以它通常被稱為資料結構伺服器。

在使用 Laravel 的 Redis 之前,你需要通過 Composer 安裝 predis/predis 擴充包:

composer require predis/predisCopy
           

或者,你也可以通過 PECL 安裝 PhpRedis PHP 擴充。這個擴充安裝起來比較複雜,但對于大量使用 Redis 的應用程式來說可能會産生更好的性能。

配置

Laravel 應用的 Redis 配置都在配置檔案 config/database.php 中。在這個檔案裡,你可以看到 redis 數組裡包含了應用程式使用的 Redis 伺服器資訊:

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
    ],

],
           

預設的伺服器配置應該足以進行開發。當然,你也可以根據使用的環境來随意更改這個數組。隻需在配置檔案中給每個 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 伺服器定義其它的連結參數 connection parameters 。如果要使用這些額外的配置選項,可以将以下配置添加到 Redis 伺服器的配置檔案 config/database.php 中:

'default' => [
    'host' => env('REDIS_HOST', 'localhost'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => 0,
    'read_write_timeout' => 60,
],
           

PhpRedis

要使用 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,
],
           

以上内容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裡入手去提升,對此我整理了一些資料,包括但不限于:分布式架構、高可擴充、高性能、高并發、伺服器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點進階進階幹貨需要的可以免費分享給大家,需要的可以加入我的PHP技術交流群 953224940

進階PHP月薪30k>>>架構師成長路線【視訊、面試文檔免費擷取】