C++ 操作Redis 簡單封裝類
阿新 • • 發佈:2019-01-03
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h> #include <iostream> #include "../hiredis/hiredis.h" #pragma warning(disable: 4996) #pragma comment(lib, "ws2_32.lib") class Redis { public: Redis() { WSADATA wsaData; WSAStartup(MAKEWORD( 2, 2 ), &wsaData); } ~Redis() { this->_connect = NULL; this->_reply = NULL; } bool connect(std::string host, int port) { this->_connect = redisConnect(host.c_str(), port); if (this->_connect->err) { return false; } return true; } std::string getError() { return this->_connect->errstr; } 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; }; int main(void) { Redis* r = new Redis; if (!r->connect("192.168.32.8", 6379)) { printf("....."); exit(0); } r->set("foo", "hello zoujiaqing!"); printf("GET: %s", r->get("foo").c_str()); return 0; }