laravel + redis를 이용한 캐시

개발새발·2021년 11월 26일
0

cache

목록 보기
1/2

Redis 사용하여 캐시작업을 진행하기로 결정했다. 라라벨과 함께 사용을 해야해서 혼자 세팅을 해봤다. 세팅을 하면서 알게 된 점이나 정리가 필요한 것들을 적어봤다.

🥁 Redis 세팅

라라벨의 경우, 레디스를 세팅하기위해서는 config/database.php의 redis 배열을 살펴보면 된다.

'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    '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),
    ],

]

보면, 환경설정에 host, password, port, database를 지정해야하는 것을 알 수 있다. 다행히 사내 자체 서비스를 사용해서 쉽게 레디스 서버를 생성할 수 있었고, 다른 설정은 기본으로 두고 생성한 redis 서버의 host와 password를 env에 적어줬다.

📍캐시 저장 및 불러오기

라라벨에서 캐시할 정보를 저장하기 위해서는 cache파사드로 캐시 생성이 가능하다.-

Cache::put('key', 'value');

캐시를 꺼내기 위해서는 아래처럼 꺼내주면 됐다.

Cache::get('key');

💥 하면서 깨달은 것

  1. redis 명령어

    • redis 접속 : redis-cli 또는 /usr/local/bin/redis-cli
    • 모든 cache 가져오기 : keys *
    • 특정 cache 가져오기 : get {cache key}
    • cache 만들기 : set {cache}
  2. 라라벨의 기본 캐시 드라이버는 serialized된 데이터를 파일 시스템에 저장한다. 캐시를 가져올 때는 다시 deserialized된 데이터를 리턴해준다.

  3. config/database.php의 redis 배열의 cache['database'] 에 1이라는 이름의 데이터베이스를 세팅해줬기 때문에 캐시 db를 찾을 때 redis로 접속한 후에 select 1 을 해줘야한다.

  4. 라라벨 캐시가 저장될 때 laravel_database_laravel_cache:key 이런식으로 저장이 되는데 이건 아직 이유를 모르겠음..ㅠㅠ..

profile
발새발개

0개의 댓글