> 백엔드 개발 > PHP 튜토리얼 > 웹사이트 캐시 읽기를 구현하기 위해 Redis를 사용하는 laravel의 방법에 대해

웹사이트 캐시 읽기를 구현하기 위해 Redis를 사용하는 laravel의 방법에 대해

不言
풀어 주다: 2023-03-31 21:00:02
원래의
2219명이 탐색했습니다.

이 글에서는 웹사이트 캐시 읽기를 구현하기 위해 Redis를 사용하는 관련 정보를 주로 소개합니다. 이 글에서는 샘플 코드를 통해 아주 자세하게 소개합니다. 학습이나 업무에 필요한 모든 사람이 올 수 있는 학습 가치가 있습니다. 우리와 함께 공부하고 공부하세요.

redis 소개

Redis는 완전한 오픈 소스이며 무료이며 BSD 프로토콜을 준수하며 고성능 키-값 데이터베이스입니다. Redis 및 기타 키-값 캐시 제품에는 다음과 같은 세 가지 특성이 있습니다. Redis는 데이터를 디스크의 메모리에 보관하고 다시 시작할 때 사용하기 위해 다시 로드할 수 있는 데이터 지속성을 지원합니다.

Redis는 단순한 키-값 유형의 데이터를 지원할 뿐만 아니라 list, set, zset, hash와 같은 데이터 구조의 저장도 제공합니다.


Redis는 데이터 백업, 즉 마스터-슬레이브 모드에서의 데이터 백업을 지원합니다.


Redis 장점

  • 매우 높은 성능 - Redis는 110,000회/초의 속도로 읽고 81,000회/초의 속도로 쓸 수 있습니다.

  • 다양한 데이터 유형 – Redis는 바이너리 사례에 대해 문자열, 목록, 해시, 집합 및 순서 집합 데이터 유형 작업을 지원합니다.

  • Atomic - Redis의 모든 작업은 원자적이며 Redis는 여러 작업을 병합한 후 원자 실행도 지원합니다.

  • 다양한 기능 - Redis는 게시/구독, 알림, 키 만료 및 기타 기능도 지원합니다.

redis 설치 방법

1. 우분투 (저는 홈스테드 환경을 사용하고 있고 가상머신도 우분투라서 이 방법으로만 설치했습니다.)


공식 우분투 설치 방법

$sudo apt-get update
$sudo apt-get install redis-server
로그인 후 복사

제 웹사이트는 laravel 프레임워크를 사용하기 때문에 설치하려면 작곡가 방법을 사용해야 합니다.

composer require predis/predis
로그인 후 복사

lumen 마이크로 프레임워크를 설치하는 경우 조명/redis(5.2)도 설치해야 합니다. .*)

composer require illuminate/redis (5.2.*)
로그인 후 복사

Configuration

Lumen이 설치된 경우

//需要在bootstrap/app.php里面加入此段代码
$app->register(Illuminate\Redis\RedisServiceProvider::class);
$app->configure('database');
로그인 후 복사

Redis를 메인 데이터베이스로 사용할 수 있으므로 Laravel의 Redis 구성 정보는 config에 있습니다. /database.php:

'redis' => [
'cluster' => false,
'default' => [
 'host' => '127.0.0.1',
 'port' => 6379,
 'database' => 0,
],
],
로그인 후 복사

클러스터 옵션은 여러 Redis 노드 간에 샤딩을 수행할지 여부를 나타냅니다. 여기서는 로컬 테스트에서 노드가 하나만 있으므로 false로 설정합니다.

기본 옵션은 기본 Redis 호스트 연결을 나타냅니다. 여기서 Redis와 웹 서버는 동일한 호스트를 공유하므로 호스트는 127.0.0.1이고 기본 Redis 포트는 6379입니다.

또한 기본 옵션은 더 많은 연결 매개변수(필요한 경우)도 지원합니다.

parameters기본값host서버 IP 주소/호스트 이름 127.0.0.1portRedis 서버 수신 포트 번호6379password서버에 인증 비밀번호가 필요한 경우비밀번호를 사용하지 마세요인덱스 세트 없음Redis 서버 연결 시간 초과5초read_write_timeout네트워크 연결을 통한 읽기 및 쓰기 작업 시간 초과
meaning

데이터베이스

선택됨 데이터베이스 인덱스 연결 시

timeout

시스템 기본값 (타임아웃에 제한이 없으면 -1로 설정)

read_write_timeout | 네트워크 연결을 통한 읽기 및 쓰기 작업에 대한 타임아웃 | 시스템 기본값(타임아웃에 제한이 없으면 -로 설정) 1)

또한 Redis를 캐시 도구로 사용하는 경우 config/cache.php에서 redis 옵션도 구성해야 합니다.

'redis' => [

'driver' => 'redis',
'connection' => 'default',
],
로그인 후 복사

여기서의 연결은 redis의 기본 호스트 기본 구성에 해당합니다. 구성/데이터베이스에 있습니다.

위 구성을 완료한 후 Redis를 사용하여 애플리케이션 코드에서 데이터 액세스를 수행할 수 있습니다.

예를 살펴보겠습니다.—Laravel의 mysql은 Redis

읽을 때 먼저 캐시에서 검색하면 운이 좋을 것이라고 생각합니다. 그런 다음 데이터베이스에서 검색하여 캐시로 전송합니다.

 if (Cache::has($key)){    //首先查寻cache如果找到
  $values = Cache::get($>key); //直接读取cache
  return $values;
 }else{         //如果cache里面没有  
  $values = DB::select($sql);
  Cache::put($key,$value,$time);
  return $values;
 }
로그인 후 복사

하지만 laravel의 캐시는 기억 기능도 제공합니다

 $values = Cache::remember($key,$time,function () {
   return DB::select($this->sql);
  });
로그인 후 복사

캐시에서 직접 읽기 및 반환 기능이 있는 경우 캐시 항목이 캐시에 없으면 클로저로 돌아갑니다. Remember 메소드가 실행되고 클로저 결과가 캐시에 저장됩니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

Laravel 프레임워크 라우팅 및 컨트롤러의 바인딩 작업 정보

Laravel 프레임워크의 수명 주기 및 원리 분석을 위해

위 내용은 웹사이트 캐시 읽기를 구현하기 위해 Redis를 사용하는 laravel의 방법에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿