题
什么是最好的方式来使用一个穿红衣DB在C++的程序?
解决方案
使用 C绑定库?似乎没有为C ++包装可在任何地方。
其他提示
我已付出了fictorial redis的-CPLUSPLUS客户端,使其对Redis的服务器2.0版,添加缺少的API调用和执行一致性哈希兼容。 也有高层次类,这将是可用好像在不久的将来STL类型(shared_string,shared_int,shared_set,...)的早期状态。没有什么是生产准备好了但在提供的测试成功地运行: - )
https://github.com/brianwatling/redispp
我刚刚发布我的C ++ Redis的GitHub上的客户端。它现在是流水线操作,我会加入更多功能很快,有可能在下一个分片/一致性哈希。
的主要特点<强> C ++客户官方列表强>
探索一个的完整列表在redis.io 一个 Redis的C ++客户>。你会发现有不同的客户端基于升压,Qt的,等等。注意,此时没有任何的C ++客户端实现被标记为“推荐”。但是有一个推荐的C客户机, hiredis ,该应用C工作得很好++
http://github.com/fictorial/redis-cplusplus-client
此C ++客户端库不然而保持为几个人实际使用C ++与Redis的通信。
https://github.com/petrohi/hiredispp
还检查了hiredispp。这还远远没有完成,但非常简单的实现,围绕基于C hiredis套。 Hiredis照顾低级协议的和网络的东西而hiredispp包装只是使它C ++友好。
我写了一C++穿红衣的客户: 穿红衣-加-加.这是基于 hiredis, 和C++编写11.它支持以下特点:
- 大多数命令穿红衣的.
- 连接池。
- 穿红衣脚本。
- 线的安全,除非另有说明。
- 穿红衣布/订阅。
- 穿红衣的管道。
- 穿红衣的交易。
- 集群.
- 穿红衣的前哨.
- 穿红衣流。
- STL样的接口。
- 通用命令的接口。
这是非常快的和容易使用。如果你有任何问题与这个客户,感到自由 让我知道.如果你喜欢它,也感觉到自由 它的明星 :)
#include <sw/redis++/redis++.h>
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<std::string> list;
redis.lrange("list", 0, -1, std::back_inserter(list));
// put a vector<string> 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.
}
检查 doc 对于细节。
另一C ++客户端可以在这里找到: https://github.com/luca3m/redis3m
这是hiredis的一个包装,漂亮的C ++类,一个高可用性连接池和一组已经实现,并且准备好利用模式。