Laravel 개발: Laravel Redis를 사용하여 데이터 캐싱을 구현하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-06-13 17:45:39
원래의
1633명이 탐색했습니다.

Laravel은 웹 개발에 널리 사용되는 매우 인기 있는 PHP 프레임워크입니다. Laravel 프레임워크는 데이터 캐싱을 포함하여 편리한 API와 구성 요소를 많이 제공합니다. Redis는 데이터 쿼리 및 읽기 효율성을 매우 효과적으로 향상시킬 수 있는 인기 있는 오픈 소스 인메모리 데이터 구조 스토리지입니다. 이 기사에서는 Laravel Redis를 사용하여 Laravel에서 데이터 캐싱을 구현하여 웹 애플리케이션의 성능을 향상시키는 방법을 소개합니다.

Installation

먼저 Laravel Redis를 설치해야 합니다. 다음 명령을 실행하여 Composer를 사용하여 설치할 수 있습니다:

composer require predis/predis
로그인 후 복사

predis/predis 패키지를 사용하여 Laravel Redis 캐시 드라이버를 구현합니다. 설치를 완료한 후 .env 파일에서 REDIS_HOST, REDIS_PASSWORD 및 REDIS_PORT 변수를 설정해야 합니다. .env文件中设置REDIS_HOST,REDIS_PASSWORD和REDIS_PORT变量。

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
로그인 후 복사

配置Laravel Redis

修改config/cache.php文件中的配置,将'default'选项更改为'redis'使用Redis作为缓存驱动。另外,在'redis'数组中设置Redis连接信息。

'default' => env('CACHE_DRIVER', 'redis'),

'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),
    ],
],
로그인 후 복사

使用Laravel Redis

一旦设置好了Laravel Redis的驱动程序和配置,我们可以开始使用它了。下面是通过Laravel Redis进行数据缓存的3种方法:

普通缓存

使用Laravel Redis的最简单方法是使用Cache门面的基本方法。Laravel框架提供了许多高级功能,但这里强调最基本的缓存处理方法。可以通过以下代码进行缓存:

use IlluminateSupportFacadesCache;

$value = Cache::remember('key', $minutes, function () {
    return DB::table('users')->get();
});
로그인 후 복사

上述代码将结果从"users"表中缓存到Redis中。在此之后,调用该密钥时将重复使用Redis中的缓存副本,而不是从源数据库重新生成结果。Cache::remember方法的第二个参数是缓存有效期(以分钟为单位),或者可以使用Cache::forever方法将数据永久保存到缓存中。

标签缓存

另一种使用Laravel Redis的高级缓存方法是使用标签。标签使您可以创建和捕获多个缓存条目,然后使用标签清除所有这些条目。标签缓存提供了对缓存生命周期的更好控制。

use IlluminateSupportFacadesCache;

Cache::tags(['people', 'artists'])->put('John', $john, $minutes);
Cache::tags(['people', 'authors'])->put('Jane', $jane, $minutes);
로그인 후 복사

上述代码将John保存在两个标签peopleartists中,并将Jane保存在两个标签peopleauthors中。现在可以使用特定标签的flush方法,仅清除该标签下的所有缓存项。

Cache::tags(['people'])->flush();
로그인 후 복사

上述代码清除所有带有people标签的缓存并将它们从Redis中删除。

辅助函数

Laravel Redis还提供了一些功能较少但使用起来更加方便的辅助函数。以下是其中一些:

  • cache()->put('key', 'value', $minutes) 缓存输入值一定时间。
  • cache()->get('key') 检索已缓存的值。
  • cache()->remember('key', $minutes, function() { return 'value'; }) 检索任何缓存项,失败时返回新值。
  • cache()->rememberForever()rrreee
  • Laravel Redis 구성

config/cache.php 파일의 구성을 수정하고 'default' 옵션을 'redis'로 변경하여 Redis를 캐시 드라이버로 사용하세요. 또한 'redis' 배열에 Redis 연결 정보를 설정합니다.

rrreee

Laravel Redis 사용

🎜Laravel Redis 드라이버와 구성이 설정되면 사용을 시작할 수 있습니다. Laravel Redis를 통해 데이터를 캐시하는 3가지 방법은 다음과 같습니다: 🎜

일반 캐시

🎜Laravel Redis를 사용하는 가장 쉬운 방법은 Cache 파사드의 기본 방법을 사용하는 것입니다. Laravel 프레임워크는 많은 고급 기능을 제공하지만 여기서는 가장 기본적인 캐싱 방법을 강조합니다. 캐싱은 다음 코드를 통해 수행할 수 있습니다. 🎜rrreee🎜위 코드는 "users" 테이블의 결과를 Redis에 캐시합니다. 그 후에는 원본 데이터베이스에서 결과를 다시 생성하는 대신 키를 호출할 때 Redis의 캐시된 복사본이 재사용됩니다. Cache::remember 메서드의 두 번째 매개변수는 캐시 유효 기간(분)입니다. 또는 Cache::forever 메서드를 사용하여 데이터를 캐시에 영구적으로 저장할 수 있습니다. . 🎜

태그 캐싱

🎜Laravel Redis의 또 다른 고급 캐싱 방법은 태그를 사용하는 것입니다. 태그를 사용하면 여러 캐시 항목을 생성 및 캡처한 다음 태그를 사용하여 모든 항목을 지울 수 있습니다. 태그 캐싱은 캐시 수명주기를 더욱 효과적으로 제어할 수 있습니다. 🎜rrreee🎜위의 코드는 peopleartists 두 태그에 John을 저장하고 두 태그에 Jane을 저장합니다. 사람저자를 태그합니다. 이제 특정 태그의 flush 메소드를 사용하여 해당 태그 아래에 캐시된 모든 항목만 지울 수 있습니다. 🎜rrreee🎜위 코드는 people 태그가 있는 모든 캐시를 지우고 Redis에서 삭제합니다. 🎜

보조 기능

🎜Laravel Redis는 기능이 적지만 사용하기 더 편리한 몇 가지 보조 기능도 제공합니다. 그 중 일부는 다음과 같습니다. 🎜
  • cache()->put('key', 'value', $ Minutes) 특정 시간 동안 입력 값을 캐시합니다. 🎜
  • cache()->get('key') 캐시된 값을 검색합니다. 🎜
  • cache()->remember('key', $ Minutes, function() { return 'value'; }) 캐시된 항목을 검색하고 실패 시 새 값을 반환합니다. 🎜
  • cache()->rememberForever() 캐시 항목을 항상 기억하세요. 🎜🎜🎜결론🎜🎜Laravel Redis는 웹 애플리케이션에서 데이터를 캐시하고 효율적인 데이터 읽기 및 쿼리를 달성하기 위한 간단하고 사용하기 쉬운 몇 가지 방법을 제공합니다. Laravel 프레임워크는 Composer에 의해 거의 완벽하게 구동되므로 Laravel Redis 작업이 쉬워집니다. 대규모 웹 애플리케이션에서 Laravel Redis 캐싱을 사용하면 느린 데이터베이스로 인해 낭비되는 시간이 줄어들고 동적 데이터에 대한 쿼리 속도가 향상된다는 이점이 있습니다. 🎜

위 내용은 Laravel 개발: Laravel Redis를 사용하여 데이터 캐싱을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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