laravel 설정 Redis 여러 라 이브 러 리 구현 방법

안내 문
레 디 스 는컴 파일 설치설치 확장를 거 쳐 정상적으로 사용 할 수 있 게 됐다.하지만 laravel 에 서 는 다른 조작 이 필요 합 니 다.
설치 확장
laravel 에서 Redis 를 사용 하려 면 설치predis확장 이 필요 합 니 다.composer require predis/predis로 설치 하면 됩 니 다.
설정 수정
  • Redis 의 설정 은config/database.php파일 에 있 습 니 다.수요 에 따라 수정 할 필요 가 없습니다.
  • Cache 기본 캐 시 를 Redis 로 설정 하고.evn파일 에서CACHE_DRIVER=redis;
  • Session 의 드라이버 를 Redis 로 설정 하고.env파일 에서SESSION_DRIVER=redis;
  • 여러 라 이브 러 리 설정
    이상 의 설정 을 거 친 후에 여러 서비스 가 Redis 를 사용 하 는데 모두 같은 라 이브 러 리 를 사용한다 면 이것 은 분명 합 리 적 이지 않다.우 리 는 이 문 제 를 해결 하기 위해 여러 개의 연결 을 설정 할 수 있다.
    Redis 는 기본적으로 16 개의 라 이브 러 리 가 있 으 며 서버 에 설 치 된redis.conf값 을 수정 할 수 있 습 니 다.
    기본 연결
    
    '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),
        ],
      
      ],
    기본적으로 두 개의 연결 이 있 는데 각각databaseconfig/database.php이다.다음은default에서 Redis 에 대한 설정 을 살 펴 보 겠 습 니 다.
    
    'redis' => [
          'driver' => 'redis',
          'connection' => 'cache',
        ],
    그것 을 볼 수 있 는cache값 은config/cache.php,즉 사용connection중의 Rediscache이다.
    다음 수정config/database.php의 Redis 는 session 의 연결 을 추가 합 니 다.다음 과 같 습 니 다.
    
    '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),
        ],
    
        'session' => [
          'host' => env('REDIS_HOST', '127.0.0.1'),
          'password' => env('REDIS_PASSWORD', null),
          'port' => env('REDIS_PORT', 6379),
          'database' => env('REDIS_SESSION_DB', 2),
        ],
    
      ],
    다음은cache에 추가config/database.php.
    테스트
    위의 조작 을 거 쳐 이미 수정 되 었 다.결론 적 으로.env는 0 라 이브 러 리 를 사 용 했 고SESSION_CONNECTION=session는 1 라 이브 러 리 를 사 용 했 으 며default는 2 라 이브 러 리 를 사 용 했 습 니 다.
    다음 코드 로 테스트 해 보 세 요.
    
    /**
       *    Redis    
       */
      public function testRedis()
      {
        // Redis   
        Redis::setex('facades', 30, 'i am facades');
        // Cache
        Cache::put('cache', 'i am cache', now()->addMinute(30));
        //    Cache     Redis,         
        // Cache::store('redis')->put('cache', now(), now()->addMinute(30));
      }
    이상 코드 를 실행 한 후 서버 에서 사용cache하여 저장 상황 을 봅 니 다.

    각 라 이브 러 리 의 저장 상황 을 볼 수 있 습 니 다.
  • Redis 전면 조작 을 사용 합 니 다.기본 값 은session에서 Redisredis-cli연결 이 고 데 이 터 는 0 라 이브 러 리 에 저 장 됩 니 다.
  • Cache 작업 을 사용 합 니 다.config/database.php에서 Redisdefaultconfig/cache.php로 설정 되 어 있 기 때문에 당연히 1 라 이브 러 리 에 저 장 됩 니 다.
  • Session 도connection설정 에 따라 2 라 이브 러 리 에 정확하게 저장 되 었 습 니 다.
  • Redis 외관 을 사용 할 때 도 연결 을 지정 할 수 있 습 니 다.
    
    $redis = Redis::connection('session');
    $redis->setex('facades_connection', 30, 'i am facades_connection');

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기