Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

yangrc/redisclient

Repository files navigation

redisclient

Build master status: Build travis status Build appveyor status

Build develop status: Build travis status Build appveyor status

Current version: 1.0.0.

Boost.asio based Redis-client header-only library. Simple but powerfull.

This version requires С++11 compiler. If you want to use this library with old compiler, use version 0.4: https://github.com/nekipelov/redisclient/tree/v0.4.

Have amalgamated sources. See files in the amalgamated directory.

Get/set example:

#include <string>
#include <vector>
#include <iostream>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/address.hpp>
#include <redisclient/redissyncclient.h>
int main(int, char **)
{
 boost::asio::ip::address address = boost::asio::ip::address::from_string("127.0.0.1");
 const unsigned short port = 6379;
 boost::asio::ip::tcp::endpoint endpoint(address, port);
 boost::asio::io_service ioService;
 redisclient::RedisSyncClient redis(ioService);
 boost::system::error_code ec;
 redis.connect(endpoint, ec);
 if(ec)
 {
 std::cerr << "Can't connect to redis: " << ec.message() << std::endl;
 return EXIT_FAILURE;
 }
 redisclient::RedisValue result;
 result = redis.command("SET", {"key", "value"});
 if( result.isError() )
 {
 std::cerr << "SET error: " << result.toString() << "\n";
 return EXIT_FAILURE;
 }
 result = redis.command("GET", {"key"});
 if( result.isOk() )
 {
 std::cout << "GET: " << result.toString() << "\n";
 return EXIT_SUCCESS;
 }
 else
 {
 std::cerr << "GET error: " << result.toString() << "\n";
 return EXIT_FAILURE;
 }
}

Async get/set example:

#include <string>
#include <iostream>
#include <functional>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/address.hpp>
#include <redisclient/redisasyncclient.h>
static const std::string redisKey = "unique-redis-key-example";
static const std::string redisValue = "unique-redis-value";
void handleConnected(boost::asio::io_service &ioService, redisclient::RedisAsyncClient &redis,
 boost::system::error_code ec)
{
 if( !ec )
 {
 redis.command("SET", {redisKey, redisValue}, [&](const redisclient::RedisValue &v) {
 std::cerr << "SET: " << v.toString() << std::endl;
 redis.command("GET", {redisKey}, [&](const redisclient::RedisValue &v) {
 std::cerr << "GET: " << v.toString() << std::endl;
 redis.command("DEL", {redisKey}, [&](const redisclient::RedisValue &) {
 ioService.stop();
 });
 });
 });
 }
 else
 {
 std::cerr << "Can't connect to redis: " << ec.message() << std::endl;
 }
}
int main(int, char **)
{
 boost::asio::ip::address address = boost::asio::ip::address::from_string("127.0.0.1");
 const unsigned short port = 6379;
 boost::asio::ip::tcp::endpoint endpoint(address, port);
 boost::asio::io_service ioService;
 redisclient::RedisAsyncClient redis(ioService);
 redis.connect(endpoint,
 std::bind(&handleConnected, std::ref(ioService), std::ref(redis),
 std::placeholders::_1));
 ioService.run();
 return 0;
}

Also you can build the library like a shared library. Just use -DREDIS_CLIENT_DYNLIB and -DREDIS_CLIENT_BUILD to build redisclient and -DREDIS_CLIENT_DYNLIB to build your project.

About

Boost.asio based Redis-client library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 91.0%
  • CMake 7.6%
  • Other 1.4%

AltStyle によって変換されたページ (->オリジナル) /