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');
redis 명령어
redis-cli 또는 /usr/local/bin/redis-cli
keys *
get {cache key}
set {cache}
라라벨의 기본 캐시 드라이버는 serialized된 데이터를 파일 시스템에 저장한다. 캐시를 가져올 때는 다시 deserialized된 데이터를 리턴해준다.
config/database.php
의 redis 배열의 cache['database'] 에 1이라는 이름의 데이터베이스를 세팅해줬기 때문에 캐시 db를 찾을 때 redis로 접속한 후에 select 1
을 해줘야한다.
라라벨 캐시가 저장될 때 laravel_database_laravel_cache:key 이런식으로 저장이 되는데 이건 아직 이유를 모르겠음..ㅠㅠ..