c++构建 redis
时间: 2023-08-13 10:10:59 浏览: 54
要在C++中构建Redis,你可以使用redis_plus_plus库。这是一个基于hiredis的C++客户端库,兼容C++ 17、C++ 14和C++ 11。它提供了许多特性,包括大多数Redis命令、连接池、Redis脚本、线程安全性、发布/订阅、管道、事务、Redis集群、Redis Sentinel、类似STL的接口、通用命令接口、Redis Stream、Redlock、Redis ACL以及TLS/SSL支持。\[2\]
要在Linux下编译安装redis_plus_plus,你需要按照以下步骤进行操作:
1. 创建一个临时目录。
2. 在该目录下创建一个新文件redis.h,并将以下代码复制到文件中:
```cpp
#ifndef _REDIS_H_
#define _REDIS_H_
#include <iostream>
#include <string.h>
#include <string>
#include <stdio.h>
#include <hiredis/hiredis.h>
class Redis {
public:
Redis(){}
~Redis() {
this->_connect = NULL;
this->_reply = NULL;
}
bool connect(std::string host, int port) {
this->_connect = redisConnect(host.c_str(), port);
if(this->_connect != NULL && this->_connect->err) {
printf("connect error: %s\n", this->_connect->errstr);
return 0;
}
return 1;
}
std::string get(std::string key) {
this->_reply = (redisReply*)redisCommand(this->_connect, "GET %s", key.c_str());
std::string str = this->_reply->str;
freeReplyObject(this->_reply);
return str;
}
void set(std::string key, std::string value) {
redisCommand(this->_connect, "SET %s %s", key.c_str(), value.c_str());
}
private:
redisContext* _connect;
redisReply* _reply;
};
#endif //_REDIS_H_
```
3. 使用适当的编译器编译你的代码,并链接hiredis库。例如,你可以使用以下命令编译:
```
g++ redis.cpp -o redis -L/usr/local/lib/ -lhiredis
```
其中,redis.cpp是你的源代码文件,-o redis指定输出文件名为redis,-L/usr/local/lib/指定hiredis库的路径,-lhiredis指定链接hiredis库。\[1\]
这样,你就可以在C++中使用redis_plus_plus库来构建Redis了。
#### 引用[.reference_title]
- *1* *3* [Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计](https://blog.csdn.net/qq_41854911/article/details/121600815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【C++】redis client: redis_plus_plus](https://blog.csdn.net/yzf279533105/article/details/129697932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]