美文网首页
【Poco笔记】Redis基本操作

【Poco笔记】Redis基本操作

作者: 安安爸Chris | 来源:发表于2018-10-19 17:38 被阅读0次

    Redis基本操作主要是指客户端侧的行为,直接上代码实例

    Client

    #include <iostream>
    #include <string>
    
    #include <Poco/Redis/Client.h>
    #include <Poco/Redis/Array.h>
    
    using namespace std;
    
    using Poco::Redis::Client;
    using Poco::Redis::Array;
    
    // 这段函数在2.0代码中增加到了Client中
    bool sendAuth(Client &client, const string& pwd) {
        Array cmd;
        cmd << "AUTH" << pwd;
    
        std::string response;
    
        try {
            response = client.execute<std::string>(cmd);
        } catch (...) {
            return  false;
        }
    
        return (response == "OK");
    }
    
    int main(int argc, char **argv) {
        Client client;
        client.connect("127.0.0.1", 6379);
        // 如果设置了密码,则需要下面鉴权。
        if (!sendAuth(client, "xxxxxxxxx")) {
            cout << "authentication failure!" << endl;
            return 1;
        }
    
        Array cmd;
        cmd << "SET"<<"name"<<"anan";
        std::string response;
        try {
            response = client.execute<std::string>(cmd);
            cout << response << endl;
        } catch (Poco::BadCastException &e) {
            cout << e.displayText();
        } catch (Poco::Redis::RedisException &e) {
            cout << e.displayText();
        }
        catch (...) {
            return 1;
        }
    
        return 0;
    }
    

    实际上就是命令行的一个封装,一些命令行可以通过Array输入。

    那如果要获取数据呢?

        Array cmd;
        cmd << "GET"<<"name";
        Poco::Redis::BulkString response; //注意,这里要使用BulkString
        try {
            response = client.execute<Poco::Redis::BulkString>(cmd);
            cout << response << endl;
        } catch (Poco::BadCastException &e) {
            cout << e.displayText();
        } catch (Poco::Redis::RedisException &e) {
            cout << e.displayText();
        }
        catch (...) {
            return 1;
        }
    
        return 0;
    }
    

    需要说明的事execute函数模板只接受以下几种类型

        enum Types 
        {
            REDIS_INTEGER,       /// Redis Integer
            REDIS_SIMPLE_STRING, /// Redis Simple String
            REDIS_BULK_STRING,   /// Redis Bulkstring
            REDIS_ARRAY,         /// Redis Array
            REDIS_ERROR          /// Redis Error
        };
    
    redis.PNG

    注意这个类型,加了双引号的就是BULK STRING,不加的,是数字就是integer,不是的就是simple string。

    相关文章

      网友评论

          本文标题:【Poco笔记】Redis基本操作

          本文链接:https://www.haomeiwen.com/subject/qvruzftx.html