C++ - redis 사용하기

게임 서버를 개발할 때 사용하는 기술이 모바일 시대 이전에 비해서 많이 다양해졌는데 거의 대부분 꼭 사용하고 있는 것이 redis 이다.
다른 언어들은 redis 사용이 간단한데 C++은 간단하지는 않아서 정리를 해 봤다.
boost를 사용하면 아주 쉽게 사용할 수 있고, boost를 사용하지 않거나 VC 지원을 해야하는 경우 좀 더 복잡해진다.


공식 redis C++ 클라이언트 라이브러리 정리


redis_client

  • https://github.com/shawn246/redis_client
  • Windows 아직 지원하지 않음.
    • 만약 사용하고 싶다면 read-write lock인 ‘pthread_rwlock_t’를 윈도우 버전에 맡게 수정해야 한다.
  • 한 쌍의 .h/.cpp 로 구성.
  • hiredis에 의존한다. 즉 꼭 필요하다.
  • pipeline 지원.
  • cluster까지 지원.
  • connection pool 지원.
  • Thread sage.
  • Reconnect automatically
  • 현재 구현 예정인 것
    • Optimize the reconnect function.
    • Support pub/sub and transaction.
    • Support scan in an unsafe way.


cpp_redis

  • https://github.com/cylix/cpp_redis
  • C++ 11 필요.
  • Windows 지원.
  • pipeline, pub/sub 지원.
  • (2016.10)현재 VS로는 DLL 만드는 솔루션만 제공(이것도 CMake 사용)
    • static lib으로 사용하고 싶다면 따로 솔루션 파일을 만들어야 한다.


async-redis

  • https://github.com/hamidr/async-redis
  • An async redis library with sentinel support based on (libevpp ASIO)


xRedis

  • https://github.com/0xsky/xredis
  • Windows 지원.
    • 바로는 사용 못하고 좀 작업을 해야함.
  • hiredis 필요.
  • support Redis master slave connection, Support read/write separation
  • connection pool
  • multi thread safety
  • 주요 문서가 중국어


redisclient

  • https://github.com/nekipelov/redisclient
  • Boost.asio(header only) based Redis-client library.
  • C++ 11 필요.
  • Windows 지원.


redisclient

  • Boost.asio based Redis-client library.
  • https://github.com/nekipelov/redisclient


poco 공식 redis

  • https://github.com/pocoproject/poco
  • poco 라이브러리 공식 redis 라이브러리.
  • 1.80 버전에 정식 지원 예정. 현재는 github에서 poco를 입수하면 redis 라이브러리가 포함되어 있음.
  • Windows 지원.


redis-client

  • https://github.com/RedisCppTeam/redis-client
  • Windows 지원
  • poco 라이브러리 필요


redis3m

  • https://github.com/luca3m/redis3m
  • Windows 지원.
  • hiredis and boost libraries 필요.
  • 1년 정도 방치된 상태임. 2016/10 기준.


redox

  • https://github.com/hmartiro/redox
  • C++11 지원 필요.
  • linux만 지원.
  • hiredis and libev 필요.
  • Modern, asynchronous, and wicked fast C++11 client for Redis


r3c

  • https://github.com/eyjian/r3c
  • Windows 비 지원.
  • C++03 지원.
  • hiredis 필요.
  • .h/.cpp 두 개의 파일로 구성.
  • 문서가 중국어로 되어 있음.


비 추천

  • redis-cplusplus-client
    • 너무 오래된 프로젝트로 방치된 상태임. 2016/10 기준으로 6년 전 프로젝트.

이 글은 2018-07-01에 작성되었습니다.