본문 바로가기
C,C++

C++ 에서 Redis사용하기 (RedisClient)

by violetoz 2024. 9. 3.

다른 언어들은 Redis 를 사용할경우 간단하게 패키지를 설치하거나 간단하게 라이브러리 추가로 바로바로 사용이 가능하나 C++ 의 경우는 번거로운 작업이 필요하여 정리하고자 여기에 기록하기로 함

Python 이나 Node 의 경우는 간단하게 패키지 설치로 바로 코드에서 포함하여 사용하거나 C#의 경우는 패키지 설치로 간단하게 한두줄로 바로 Redis에 접근 및 사용이 가능하다.

허나 C++ 에서는 그러한건 없는듯하고 대표적인 라이브러리를 사용하여 Cmake 를 통한 빌드후에 나온 파일들을 포함하여야 사용가능하다.

그중에 hiredis를 사용하여 C++에서 redis 를 사용하는 방법을 적어보려함

hiredis

  • C언어로 작성된 Redis 데이터베이스 클라이언트 라이브러리로, 최소한의 redis만 제공
  • Cmake 로 빌드 필요
  • C++ 언어로 작성된 Redis 데이터베이스 클라이언트 라이브러리가 있음. redis-plus-plus
  • C++ 로 작성된 라이브러리를 사용하기위해선 C언어로 작성된 hiredis가필요함

 

필요한것들

 

[cmake]

https://cmake.org/download/  에서 msi 파일을 다운로드하여 설치한다.

(사용자의 OS환경등에 따라서 설치하는 파일은 알아서 받아서 사용)

다운받은 msi 파일을 설치하고 설치도중에 PATH 등록하는 항목은 꼭 체크해주도록하자.

[hiredis]

https://github.com/redis/hiredis 에서 Zip 압축파일을 다운받은 후에 압축을 풀어준다.

 

GitHub - redis/hiredis: Minimalistic C client for Redis >= 1.2

Minimalistic C client for Redis >= 1.2. Contribute to redis/hiredis development by creating an account on GitHub.

github.com

 

압축풀기를 하면 redis-master라는 폴더가 생성되고 여기에 압축파일들이 풀린다.

 

cmake 를 관리자 권한으로 실행한 후에 [Where is the source code] 에 다운받은 hiredis 압축 푼 폴더를 지정해준다.

1-1. [Where to build the binaries] 에는 빌드한 바이너리 파일이 생성될 폴더를 지정해준다.

1-2. [Where to build the binaries] 에 들어갈 폴더는 편한대로 새로 생성한후에 지정해주면된다 나같은경우에는 build라는 폴더를 생성하고 해당 위치로 지정해주었다.

1-3. 위의 설정들 마치게되면 하단의 [Configure] 를 클릭하면 configure 창이 뜨는데 설치한 환경을 지정하여주면된다.

1-4.그리고 위의 1-2번 항목 이미지의 가운데를 보면 각종 항목이 나오는데

[CMAKE_INSTALL_PREFIX] 에 빌드후에 생기는 라이브러리 파일들을 넣을 폴더를 지정해준다. 
기본은 C:/Program Files/hiredis 로 나오는데 편한대로 지정하면된다.

[CMAKE_INSTALL_PREFIX] 로 지정한 폴더는 위의 [Where to build the Binaries] 에서 나온 코드를 빌드를 하게되면 라이브러리 파일들이 생성되는데 이 생성된 라이브러리들이 위치하게 될 폴더이다.

1-5. [Generate] 를 눌러 실행해준다. 위에 과정을 잘 따라왔다면 별 문제없이 진행될것이다.

1-6. 위의 [Where is the source code] 폴더에 hiredis.sln 솔루션을 연다. 또는 하단의 [Open Project] 를 클릭해도 된다.

1-7. [ALL_BUILD] 와 [INSTALL] 프로젝트를 Debug, Release 에서 빌드해준다.

1-8. 1-4 에서 [CMAKE_INSTALL_PREFIX] 에 지정한 폴더로 가서 해당폴더에있는 생성된 bin, include, lib 등 모든폴더들을 Redis를 적용할 프로젝트 디렉토리에 복사한다.
예) C:\Users\사용자\ProjectDir\Redis\

1-9. 프로젝트 속성 페이지에서 다음을 추가한다.

  • [구성 속성] > [디버깅] > [환경] : PATH=$(ProjectDir)\bin;%PATH%;
  • [구성 속성] > [C/C++] > [추가 포함 디렉터리] : $(ProjectDir)\include;
  • [구성 속성] > [링커] > [일반] > [추가 라이브러리 디렉터리] : $(ProjectDir)\lib;
  • [구성 속성] > [링커] > [입력] > [추가 종속성] : hiredis.lib;

1-10. 사용할 소스코드 상단에 #include <hiredis/hiredis.h>를 추가하고 redis 서버에 접근이 가능하다.

 

2. 이제 C++언어로 작성된 Redis 데이터베이스 클라이언트 라이브러리를 적용하려한다. 위에것을 그대로 사용해도 되지만 C++에 맞게 hiredis-plus-plus를 적용하려한다.
https://github.com/sewenew/redis-plus-plus#windows-support) 에서 받을 수 있다.

 

GitHub - sewenew/redis-plus-plus: Redis client written in C++

Redis client written in C++. Contribute to sewenew/redis-plus-plus development by creating an account on GitHub.

github.com

 

2-1. Cmake 과정은 위의 hiredis 과정과 비슷하다.

  • [CMAKE_CINSTALL_PREFIX] : 빌드후에 생기는 라이브러리 저장할 폴더
  • [HIREDIS_HEADER] : 위의 1-4에서 나온 include 디렉토리
  • [HIREDIS_LIB] : 위의 1-4에서 나온 hiredis.lib파일
  • [TEST_HIREDIS_LIB] : 위의 1-4에서 나온 hiredis.lib파일
  • [hiredis_DIR] : 다운로드한 1의 hiredis-master 폴더

2-2. [CMAKE_CINSTALL_PREFIX] 에 입력한 경로에 [Generate] 하여 나온 항목들을 프로젝트에 1-8에서 복사한곳에 붙여넣기를 한다.

2-3. 사용할 소스코드 상단에 #include <sw/redis++/redis++.h> 를 추가하여 사용한다.

'C,C++' 카테고리의 다른 글

깊이탐색, 넓이탐색  (1) 2024.10.29
libboost_thread-vc143-mt-gd-x64-1_86.lib 파일을 열 수 없습니다.  (0) 2024.09.05
.vsconfig 파일  (0) 2020.02.05
Window 문자셋  (0) 2014.11.07
문자집합 변경  (0) 2014.10.23