zoukankan      html  css  js  c++  java
  • C++ 操作Redis 简单封装类

    #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;
    }

  • 相关阅读:
    第四次作业——个人作业——软件案例分析
    作业五——团队项目——需求规格说明书
    团队项目——团队展示
    作业三——结对编程
    作业二——结对项目之需求分析与原型模型设计
    leetcode 212 单词搜索II
    leetcode 130. 被围绕的区域
    leetcode 695 Max Area of Island 岛的最大面积
    【《算法》学习笔记】一:
    leetcode 191 位1的个数
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318425.html
Copyright © 2011-2022 走看看