What would be the best way to use a Redis DB within a C++ program?
I wrote a C++ Redis client: redis-plus-plus. It's based on hiredis, and written in C++11. It supports the following features:
It's very fast, and easy to use. If you have any problem with this client, feel free to let me know. If you like it, also feel free to star it :)
#include
using namespace sw::redis;
try {
Redis redis("tcp://127.0.0.1:6379");
redis.set("key", "val");
auto val = redis.get("key");
if (val) {
// dereference val to get the value of string type.
std::cout << *val << std::endl;
} // else key doesn't exist.
redis.rpush("list", {"a", "b", "c"});
std::vector list;
redis.lrange("list", 0, -1, std::back_inserter(list));
// put a vector to Redis list.
redis.rpush("another-list", list.begin(), list.end());
auto tx = redis.transaction();
auto tx_replies = tx.incr("num0")
.incr("num1")
.mget({"num0", "num1"})
.exec();
auto redis_cluster = RedisCluster("tcp://127.0.0.1:7000");
// RedisCluster has similar interface as Redis.
redis_cluster.set("key", "value");
val = redis_cluster.get("key");
} catch (const Error &err) {
// error handling.
}
Check the doc for details.