일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 동영상
- php
- Koin
- junit
- Observable
- google play
- mvvm
- Android
- MediaSession
- RxKotlin
- list
- mysql
- node
- rx
- Kotlin
- SWIFTUI
- MotionLayout
- SwiftUI Tutorial
- 테스트 자동화
- Android 13
- Animation
- MediaPlayer
- PagingLib
- GCP
- paging
- android13
- databinding
- Reactive
- 인앱결제
- node.js
- Today
- Total
봄날은 갔다. 이제 그 정신으로 공부하자
[php] redis client 설치 및 샘플 코드 본문
1. redis란?
Redis는 Remote Dictionary Server의 약자로 키(Key) - 값(Value) 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)으로 Redis는 오픈 소스 기반으로 인-메모리(In-memory) 데이터 구조 저장소로 메모리에 데이터를 저장합니다.
따라서 별도의 쿼리문이 필요로 하지 않고, 인-메모리에 저장되기 때문에 상당히 빠른 속도로 처리할 수 있습니다.
성능은 초당 약 10만회 명령을 실행합니다. 이는 서버(CPU)에 따라 다르지만 일반적으로 초당 5만 ~ 25만회를 실행합니다.
2. local PC에 mac용 redis 설치
아래 방식으로 local PC에 redis를 설치하여 간단한 테스트가 가능합니다.
CLI에서 아래 명령어를 입력해 redis를 설치(or 삭제)합니다.
// redis 설치
> brew install redis
// redis 설치 제거 (설치한 redis를 제거하고 싶으시다면 아래 명령어 실행)
> brew uninstall redis
// 설치 버전 확인
> redis-server --version
redis가 정상적으로 설치되었으면 아래 명령어로 실행 및 종료가 가능합니다.
// redis foreground로 실행
> redis-server
// redis background로 실행
> brew services start redis
// redis background로 재실행
> brew services restart redis
// redis background로 중지
> brew services stop redis
// redis 실행 상태 확인
> brew services info redis
redis CLI를 사용해 데이터를 set get 하는것이 가능하며 방법은 아래와 같습니다.
// local redis 서버에 접속
> redis-cli
127.0.0.1:6379> set "mykey" "myValue"
OK
127.0.0.1:6379> get "mykey"
"myValue"
127.0.0.1:6379>
// 지정된 redis 서버에 접속
> redis-cli -h <end pioint> -p 6379
// 지정된 redis 서버에 접속 (보안회선)
> redis-cli -h <end pioint> -p 6379 -c --tls
// redis-cli 종료는 "ctrl + C"
3. mac용 composer 설치 (php 의존성 관리도구)
이전 글 참고: "[php] MQTT client 설치 및 샘플 코드"
4. php-redis 설치 (php용 redis client - predis)
composer가 설치되었으므로 composer를 사용하여 프로젝트에 php-redis-client를 설치합니다.
php-redis-client를 설치하고자 하는 프로젝트의 root 폴더로 이동 (php backend 루트 폴더)
composer 명령어로 php용 mqtt client를 설치합니다.
>> composer require predis/predis
predis가 정상적으로 설치되었으면 프로젝트 폴더의 “vendor” 폴더 하위에 "predis“ 폴더가 생성된 것을 확인할 수 있습니다.
redis에 연결해서 데이터를 set get하는 것은 복잡한 처리 없이 간단히 redis client를 생성하고 set 또는 get 하면됩니다.
redis client 인스턴스 생성
require_once (__DIR__ . '/../../vendor/autoload.php');
// 아래 방식 중 한가지 방식으로 인스턴스를 생성하면 됩니다.
// redis client 생성 (TLS)
$redis = new RedisClient([
'scheme' => 'tls',
'host' => 'my_aws_url.amazonaws.com',
'port' => 6379
]);
// redis client 생성 (normal)
$redis = new RedisClient([
'host' => 'my_aws_url.amazonaws.com',
'port' => 6379
]);
// 클러스터 redis client 생성
$parameters = ['tls://my-rediseserverj...com:6379', 'tls://my-rediseserverj...com:6379'];
$options = ['cluster' => 'redis'];
$redis = new Predis\Client($parameters, $options);
redis에 데이터 set or get
// redis set -> 1분동안 유효한 value set
$redis->set('testKey:mytestKey', 60, '{"index":4885,”data":"926"}');
// redis set -> 유효기간이 없는 value set
$redis->set('testKey:mytestKey', '{"index":4885,"data":"926"}');
// redis get
$value = $redis->get('testKey:mytestKey');