Redis4Qt  1.0.0
Redis API for Qt framework
redis_core.h
1 #ifndef RedisCore_H
2 #define RedisCore_H
3 
4 #include <QObject>
5 #include <QStringList>
6 #include <QEventLoop>
7 
8 #include "redis_reader.h"
9 #include "redis_errors.h"
10 
11 #define DEAFULT_REDIS_CMD_TIMEOUT 3
12 
13 class RedisCore : public QObject
14 {
15  Q_OBJECT
16 public:
17  explicit RedisCore(QString host, int port, QObject *parent = 0);
18  ~RedisCore();
19 
20  typedef struct Reply {
21  QString type;
22  QString message;
23  QString pattern;
24  QString channel;
25  QVariant value;
26  } Reply;
27 
28  bool openConnection();
29  bool closeConnection();
30  bool isConnected();
31  int getLastError();
32  void setLastError(int error);
33  void setTimeout(int timeout);
34 
35  void publish(QString, QString);
36  void subscribe(QString);
37  void unsubscribe(QString);
38  void psubscribe(QString);
39  void punsubscribe(QString);
40 
41  Reply command(QString);
42 
43  int append(QString key, QString value);
44  bool auth(QString password);
45  QStringList blpop(QString key, int timeout);
46  QStringList brpop(QString key, int timeout);
47  QStringList brpoplpush(QString source, QString destination, int timeout);
48  int decr(QString key);
49  int decrby(QString key,int interval);
50  int del(QString key);
51  QString dump(QString key);
52  bool exists(QString key);
53  bool expire(QString key,int seconds);
54  bool expireat(QString key, qint64 timestamp);
55  QVariant eval(QString script, int numkeys, QString keys, QString arguments);
56  QVariant evalsha(QString sha1, int numkeys, QString keys, QString arguments);
57  QString get(QString key);
58  QString getrange(QString key, int start, int stop);
59 
60  int hdel(QString key, QStringList fields);
61  bool hexists(QString key, QString field);
62  QString hget(QString key, QString field);
63  QMap<QString,QVariant> hgetall(QString key);
64 
65  int hincrby(QString key, QString field, int increment);
66  float hincrbyfloat(QString key, QString field, float increment);
67  QStringList hkeys(QString key);
68  int hlen(QString key);
69  QStringList hmget(QString key, QStringList fields);
70  bool hmset(QString key, QMap<QString,QVariant> map);
71  bool hset(QString key, QString field, QString value);
72  bool hsetnx(QString key, QString field, QString value);
73  QStringList hvals(QString key);
74 
75 
76  int incr(QString key);
77  int incrby(QString key,int interval);
78  QStringList keys(QString pattern);
79  QString lindex(QString key, int index);
80  int linsert(QString key, QString position,
81  QString pivot, QString value);
82  int llen(QString key);
83  QString lpop(QString key);
84  int lpush(QString key, QStringList values);
85  int lpushx(QString key, QStringList values);
86  QStringList lrange(QString key, int start, int stop);
87  int lrem(QString key, int count, QString value);
88  int lset(QString key, int index, QString value);
89  bool ltrim(QString key, int start, int stop);
90  QStringList mget(QStringList keys);
91  bool migrate(QString host, int port, QString key, int database, int timeout);
92  bool move(QString key, int database);
93  bool mset(QMap<QString, QVariant> map);
94  QVariant object(QString subcommand, QString arguments);
95  bool persist(QString key);
96  bool pexpire(QString key, qint64 mseconds);
97  bool pexpireat(QString key, qint64 mstimestamp);
98  int pttl(QString key);
99  bool rename(QString key, QString newkey);
100  bool renamex(QString key, QString newkey);
101  bool restore(QString key, int ttl, QString value);
102  QString rpop(QString key);
103  QString rpoplpush(QString source, QString destination);
104  int rpush(QString key, QStringList values);
105  int rpushx(QString key, QStringList values);
106  int sadd(QString key, QStringList members);
107  int scard(QString key);
108  QStringList scriptexists(QString script);
109  QString scriptflush();
110  QString scriptkill();
111  QString scriptload(QString script);
112  QStringList sdiff(QStringList keys);
113  int sdiffstore(QString destination, QStringList keys);
114  QStringList sinter(QStringList keys);
115  int sinterstore(QString destination, QStringList keys);
116  bool sismember(QString key, QString member);
117  QStringList smembers(QString key);
118  bool smove(QString source, QString destination, QString member);
119  QString spop(QString key);
120  QStringList srandmember(QString key, int count);
121  int srem(QString key, QStringList members);
122  QStringList sunion(QStringList keys);
123  int sunionstore(QString destination, QStringList keys);
124  bool set(QString key, QString value);
125  int setrange(QString key, int offset, QString value);
126  QStringList sort(QString key, QString conditions);
127  int ttl(QString key);
128  QString type(QString key);
129  void connectHost(const QString &host, const quint16 port = 6379);
130  void disconnectHost();
131 
132 
133 signals:
134  void connected();
135  void disconnected();
136  void returnData(Reply);
137  void cmdSuccess();
138 
139 private slots:
140  void slotConnected();
141  void slotDisconnected();
142  void response(QVariant);
143 
144 private:
145  int m_errorCode; //错误码
146  volatile bool m_hasReply; //redis是否有返回值
147  RedisReader *reader;
148  QString host; //redis服务器地址
149  int port; //redis服务器端口
150  int cmdTimeout; //redis命令超时时间
151  QStringList responseData;
152 };
153 
154 #endif // RedisCore_H
Definition: redis_reader.h:12
Definition: redis_core.h:20
Definition: redis_core.h:13