Build an application using C++
Prerequisites
The tutorial assumes that you have:
- installed YugabyteDB, created a universe, and are able to interact with it using the Redis shell. If not, follow the steps in Quick start.
- have C++ 11 or later.
Install the Redis C++ driver
We use the cpp_redis
driver. To install the library do the following:
- Clone the
cpp_redis
repository
$ git clone https://github.com/Cylix/cpp_redis.git
- Get the networking module (tacopie)
$ cd cpp_redis
$ git submodule init && git submodule update
- Create a build directory and move into it
$ mkdir build && cd build
- Generate the Makefile using CMake
$ cmake .. -DCMAKE_BUILD_TYPE=Release
- Build and install the library
$ make
$ make install
Write the HelloWorld C++ application
Create a file ybredis_hello_world.cpp
and copy the contents below:
#include <cpp_redis/cpp_redis>
#include<iostream>
#include<vector>
#include<string>
#include<utility>
using namespace std;
int main() {
cpp_redis::client client;
client.connect("127.0.0.1", 6379, [](const std::string& host, std::size_t port, cpp_redis::client::connect_state status) {
if (status == cpp_redis::client::connect_state::dropped) {
std::cout << "client disconnected from " << host << ":" << port << std::endl;
}
});
string userid = "1";
vector<pair<string, string>> userProfile;
userProfile.push_back(make_pair("name", "John"));
userProfile.push_back(make_pair("age", "35"));
userProfile.push_back(make_pair("language", "Redis"));
// Insert the data
client.hmset(userid, userProfile, [](cpp_redis::reply& reply) {
cout<< "HMSET returned " << reply << ": id=1, name=John, age=35, language=Redis" << endl;
});
// Query the data
client.hgetall(userid, [](cpp_redis::reply& reply) {
std::vector<cpp_redis::reply> retVal;
if (reply.is_array()) {
retVal = reply.as_array();
}
cout << "Query result:" <<endl;
for (int i = 0; i < retVal.size(); i=i+2) {
cout << retVal[i] << "=" <<retVal[i+1] << endl;
}
});
// synchronous commit, no timeout
client.sync_commit();
return 0;
}
Run the application
To compile the file, run the following command.
$ g++ -ltacopie -lcpp_redis -std=c++11 -o ybredis_hello_world ybredis_hello_world.cpp
To run the application, run the following command.
$ ./ybredis_hello_world
You should see the following output.
HMSET returned OK: id=1, name=John, age=35, language=Redis
Query result:
age=35
language=Redis
name=John