Skip to content

someburner/cpp_redis

Repository files navigation

cpp_redis

Installation

git submodule init && git submodule update
mkdir build && cd build

# With logger
cmake .. -DCMAKE_BUILD_TYPE=Release -DLOGGING_ENABLED=1
# Without Logger
cmake .. -DCMAKE_BUILD_TYPE=Release

make
sudo make install

cd ..
rm -rf build
cd ..

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.sync_commit();
# or client.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.sync_commit();
# or sub.commit(); for synchronous call

cpp_redis::redis_subscriber full documentation and detailed example.

cpp_redis::future_client

cpp_redis::future_client client;

client.connect();

auto set    = client.set("hello", "42");
auto decrby = client.decrby("hello", 12);
auto get    = client.get("hello");

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

std::cout << "set 'hello' 42: " << set.get() << std::endl;
std::cout << "After 'hello' decrement by 12: " << decrby.get() << std::endl;
std::cout << "get 'hello': " << get.get() << std::endl;

cpp_redis::future_client 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

  • Frank Pagliughi for adding support of futures to the library
  • 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

Releases

No releases published

Packages

No packages published