C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.
C++ CMake Shell
Latest commit ad499a7 Jan 15, 2017 @aardvarkk aardvarkk committed with Fix for race condition due to m_callbacks_running being altered witho…
…ut mutex protection (#34)

Fixes #32

README.md

cpp_redis Build Status

cpp_redis is a C++11 Asynchronous Multi-Platform Lightweight Redis Client, with support for synchronous operations and pipelining.

Requirement

cpp_redis has no dependency. Its only requirement is C++11.

Example

cpp_redis::redis_client:

cpp_redis::redis_client client;

client.connect();

client.set("hello", "42");
client.get("hello", [](cpp_redis::reply& reply) {
  std::cout << reply << std::endl;
});

client.commit();
# or client.sync_commit(); for synchronous call

cpp_redis::redis_client full documentation and detailed example. More about cpp_redis::reply.

cpp_redis::redis_subscriber:

cpp_redis::redis_subscriber sub;

sub.connect();

sub.subscribe("some_chan", [](const std::string& chan, const std::string& msg) {
  std::cout << "MESSAGE " << chan << ": " << msg << std::endl;
});
sub.psubscribe("*", [](const std::string& chan, const std::string& msg) {
  std::cout << "PMESSAGE " << chan << ": " << msg << std::endl;
});

sub.commit();
# or sub.sync_commit(); for synchronous call

cpp_redis::redis_subscriber full documentation and detailed example.

Wiki

A Wiki is available and provides full documentation for the library as well as installation explanations.

License

cpp_redis is under MIT License.

Contributing

Please refer to CONTRIBUTING.md.

Special Thanks

  • Mike Moening for his unexpected and incredible great work aiming to port cpp_redis on Windows!
  • Tobias Gustafsson for contributing and reporting issues
  • Alexis Vasseur for reporting me issues and spending time helping me debugging
  • Pawel Lopko for reporting me issues

Author

Simon Ninon