wumu
2 天以前 509cab4025caa96e6b3e3962916b0d8cdadc4b93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
 
#include <QCoreApplication>
#include <QTimer>
 
#include "example-qt.h"
 
void getCallback(redisAsyncContext *, void * r, void * privdata) {
 
    redisReply * reply = static_cast<redisReply *>(r);
    ExampleQt * ex = static_cast<ExampleQt *>(privdata);
    if (reply == nullptr || ex == nullptr) return;
 
    cout << "key: " << reply->str << endl;
 
    ex->finish();
}
 
void ExampleQt::run() {
 
    m_ctx = redisAsyncConnect("localhost", 6379);
 
    if (m_ctx->err) {
        cerr << "Error: " << m_ctx->errstr << endl;
        redisAsyncFree(m_ctx);
        emit finished();
    }
 
    m_adapter.setContext(m_ctx);
 
    redisAsyncCommand(m_ctx, NULL, NULL, "SET key %s", m_value);
    redisAsyncCommand(m_ctx, getCallback, this, "GET key");
}
 
int main (int argc, char **argv) {
 
    QCoreApplication app(argc, argv);
 
    ExampleQt example(argv[argc-1]);
 
    QObject::connect(&example, SIGNAL(finished()), &app, SLOT(quit()));
    QTimer::singleShot(0, &example, SLOT(run()));
 
    return app.exec();
}