그누보드5에 사용자 정의 Redis 구성을 추가하고 세션 저장소를 Redis로 변경합니다. > 개발강좌

개발강좌

프로그램 강좌 :
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축

그누보드5에 사용자 정의 Redis 구성을 추가하고 세션 저장소를 Redis로 변경합니다. 정보

그누보드5 그누보드5에 사용자 정의 Redis 구성을 추가하고 세션 저장소를 Redis로 변경합니다.

본문

여기서는 Composer를 사용하여 설치하고 있습니다. 이해하지 못하는 경우

 

https://getcomposer.org/ 를 참조하세요. 먼저 predis를 설치합니다.

 

composer require predis/predis

 

그런 다음 루트 디렉토리의 common.php 파일에 다음을 추가합니다.

require_once __DIR__ . '/vendor/autoload.php';

 

그런 다음 lib 디렉토리 아래에 RedisClient.php를 만들고 다음 내용을 추가합니다.

 

<?php
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../bbs/_common.php';
use Predis\Client;

/**
 * Redis 클라이언트
 */
class RedisClient
{
    private static $instance = null;
    private $client;

    private function __construct()
    {
        // TCP 연결을 사용하여 Predis 클라이언트 인스턴스 생성
        $this->client = new Client([
            'scheme' => 'tcp',
            'host' => G5_REDIS_HOST, // Redis 서버 호스트 이름 또는 IP 주소
            'port' => G5_REDIS_PORT, // Redis 서버 포트
            'timeout' => G5_REDIS_TIMEOUT, // 연결 타임아웃 시간 (초 단위)
        ]);
        $this->client->auth(G5_REDIS_PW);// Redis 비밀번호
    }

    public static function getInstance()
    {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function getClient()
    {
        return $this->client;
    }

}

먼저 루트 디렉토리의 config.php 파일에 다음 코드를 추가합니다.

 // Redis 설정
define('G5_REDIS_HOST', 'localhost');
define('G5_REDIS_PORT', 6379);
define('G5_REDIS_PW', '');
define('G5_REDIS_TIMEOUT', 60);
define('G5_REDIS_SESSION_SAVE_PATH', "tcp://localhost:6379?weight=1&auth=");
// 세션 저장 방식 (파일은 files, Redis는 redis)
define('G5_SESSION_SAVE_HANDLER', "redis");

그런 다음 루트 디렉토리의 common.php 파일을 수정하고 231번째 라인에 다음을 추가합니다.

 

@ini_set("session.save_handler", G5_SESSION_SAVE_HANDLER); // 세션 저장 방식 설정

 

그런 다음 주석 처리된 이 라인을 다음과 같이 변경하여 세션 저장 경로를 설정합니다.

 

session_save_path(G5_REDIS_SESSION_SAVE_PATH);

 

세션 저장 방식을 파일로 변경하려면 다음을 수정합니다.

define('G5_SESSION_SAVE_HANDLER', "files"); define('G5_REDIS_SESSION_SAVE_PATH', "/tmp");
추천
3

댓글 5개

그누보드와 composer 는 잘 안 맞습니다.

(호스팅 업체에서 지원 안되는 경우도 많고)

Phpredis 를 모듈로 설치한 경우면, composer 로 따로 라이브러리를 추가할 필요는 없습니다.

new Redis() 로 생성하면 됩니다.

 

 

redis 를 쓰면 좋다는건 알겠는데,

본문 내용에서 뭔가 누락되거나 잘못 기술한 부분도 있는것 같습니다.

 

그누보드에서 redis를 사용하여 성능 향상을 얻을려면, 다음 글을 참조하세요.

 

https://sir.kr/g5_tip/1930

https://sir.kr/g5_tip/6547

https://sir.kr/g5_plugin/3261

 

 

 

 

전체 103
개발강좌 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT