在没有使用服务器集群的情况下,连接多个redis服务,可以传递服务器名到connection方法来获取指定Redis配置中定义的指定服务器。

$redis = Redis::connection('other');

配置方法

1、复制 vendor/laravel/lumen-framework/config/database.php 文件到 config/ 下,修改config/database.php文件redis配置,避免直接修改vendor下文件

'redis' => [

        'cluster' => env('REDIS_CLUSTER', false),

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

        # 新增测试redis配置
        'test_redis' => [
            'host'     => env('TEST_REDIS_HOST', '127.0.0.1'),
            'port'     => env('TEST_REDIS_PORT', 6379),
            'database' => env('TEST_REDIS_DATABASE', 0),
            'password' => env('TEST_REDIS_PASSWORD', null),
        ],

    ],

2、在.env文件中添加test_redis配置

TEST_REDIS_HOST=127.0.0.1
TEST_REDIS_PORT=6379
TEST_REDIS_DATABASE=0
TEST_REDIS_PASSWORD=null

3、在 bootstrap/app.php 中引入 config/database.php配置文件

$app->configure('database');

4、使用实例

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redis;

class RedisController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    
    public function test(){
        $key = 'key';
        # 默认redis实例
        Redis::hgetall($key);

        # 获取指定配置的Redis服务器实例
        $redis = Redis::connection('test_redis');
        $redis->hMset($key, $data);
    }

    //
}