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

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

配置方法

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

  1. 'redis' => [
  2. 'cluster' => env('REDIS_CLUSTER', false),
  3. 'default' => [
  4. 'host' => env('REDIS_HOST', '127.0.0.1'),
  5. 'port' => env('REDIS_PORT', 6379),
  6. 'database' => env('REDIS_DATABASE', 0),
  7. 'password' => env('REDIS_PASSWORD', null),
  8. ],
  9. # 新增测试redis配置
  10. 'test_redis' => [
  11. 'host' => env('TEST_REDIS_HOST', '127.0.0.1'),
  12. 'port' => env('TEST_REDIS_PORT', 6379),
  13. 'database' => env('TEST_REDIS_DATABASE', 0),
  14. 'password' => env('TEST_REDIS_PASSWORD', null),
  15. ],
  16. ],

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

  1. TEST_REDIS_HOST=127.0.0.1
  2. TEST_REDIS_PORT=6379
  3. TEST_REDIS_DATABASE=0
  4. TEST_REDIS_PASSWORD=null

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

  1. $app->configure('database');

4、使用实例

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Redis;
  5. class RedisController extends Controller
  6. {
  7. /**
  8. * Create a new controller instance.
  9. *
  10. * @return void
  11. */
  12. public function __construct()
  13. {
  14. //
  15. }
  16. public function test(){
  17. $key = 'key';
  18. # 默认redis实例
  19. Redis::hgetall($key);
  20. # 获取指定配置的Redis服务器实例
  21. $redis = Redis::connection('test_redis');
  22. $redis->hMset($key, $data);
  23. }
  24. //
  25. }