> 백엔드 개발 > PHP 튜토리얼 > laravel이 Redis를 사용하여 웹사이트 캐시를 읽는 방법

laravel이 Redis를 사용하여 웹사이트 캐시를 읽는 방법

小云云
풀어 주다: 2023-03-22 17:52:01
원래의
2102명이 탐색했습니다.

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

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

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

Redis의 장점

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

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

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

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

redis 설치 방법

1. 우분투 (저는 홈스테드 환경을 사용하고 있고 가상머신은 우분투라서 이 방법으로만 설치했습니다. 윈도우의 경우는 http://www.redis .net.cn/tutor 또는 http://www.jb51.net/article/84071.htm... )

공식 Ubuntu 설치 방법


$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

meaning

기본값
host서버 IP 주소/호스트 이름 127.0.0.1
portRedis 서버 수신 포트 번호6379
password서버에 인증 비밀번호가 필요한 경우비밀번호를 사용하지 마세요

데이터베이스

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

인덱스 세트 없음

timeout

Redis 서버 연결 시간 초과5초
read_write_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이 Redis를 사용하여 웹사이트 캐시를 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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