TreeFrogFramework  1.18
tredis.h
Go to the documentation of this file.
1 #ifndef TREDIS_H
2 #define TREDIS_H
3 
4 #include <QVariant>
5 #include <QByteArray>
6 #include <QStringList>
7 #include <TGlobal>
8 #include <TKvsDatabase>
9 
10 class TRedisDriver;
11 
12 
14 {
15 public:
16  TRedis();
17  TRedis(const TRedis &other);
18  virtual ~TRedis() { }
19 
20  bool isOpen() const;
21  bool exists(const QByteArray &key);
22 
23  // binary
24  QByteArray get(const QByteArray &key);
25  bool set(const QByteArray &key, const QByteArray &value);
26  bool setEx(const QByteArray &key, const QByteArray &value, int seconds);
27  QByteArray getSet(const QByteArray &key, const QByteArray &value);
28 
29  // string
30  QString gets(const QByteArray &key);
31  bool sets(const QByteArray &key, const QString &value);
32  bool setsEx(const QByteArray &key, const QString &value, int seconds);
33  QString getsSets(const QByteArray &key, const QString &value);
34 
35  bool del(const QByteArray &key);
36  int del(const QList<QByteArray> &keys);
37 
38  // binary list
39  int rpush(const QByteArray &key, const QList<QByteArray> &values);
40  int lpush(const QByteArray &key, const QList<QByteArray> &values);
41  QList<QByteArray> lrange(const QByteArray &key, int start, int end);
42  QByteArray lindex(const QByteArray &key, int index);
43 
44  // string list
45  int rpushs(const QByteArray &key, const QStringList &values);
46  int lpushs(const QByteArray &key, const QStringList &values);
47  QStringList lranges(const QByteArray &key, int start, int end);
48  QString lindexs(const QByteArray &key, int index);
49 
50  int llen(const QByteArray &key);
51 
52 private:
53  TRedisDriver *driver();
54  const TRedisDriver *driver() const;
55 
56  static QList<QByteArray> toByteArrayList(const QStringList &values);
57  static QStringList toStringList(const QList<QByteArray> &values);
58 
59  TKvsDatabase database;
60 };
61 
62 
63 inline QString TRedis::gets(const QByteArray &key)
64 {
65  return QString::fromUtf8(get(key));
66 }
67 
68 inline bool TRedis::sets(const QByteArray &key, const QString &value)
69 {
70  return set(key, value.toUtf8());
71 }
72 
73 inline bool TRedis::setsEx(const QByteArray &key, const QString &value, int seconds)
74 {
75  return setEx(key, value.toUtf8(), seconds);
76 }
77 
78 inline QString TRedis::getsSets(const QByteArray &key, const QString &value)
79 {
80  return QString::fromUtf8(getSet(key, value.toUtf8()));
81 }
82 
83 inline int TRedis::rpushs(const QByteArray &key, const QStringList &values)
84 {
85  return rpush(key, toByteArrayList(values));
86 }
87 
88 inline int TRedis::lpushs(const QByteArray &key, const QStringList &values)
89 {
90  return lpush(key, toByteArrayList(values));
91 }
92 
93 inline QStringList TRedis::lranges(const QByteArray &key, int start, int end = -1)
94 {
95  return toStringList(lrange(key, start, end));
96 }
97 
98 inline QString TRedis::lindexs(const QByteArray &key, int index)
99 {
100  return QString::fromUtf8(lindex(key, index));
101 }
102 
103 #endif // TREDIS_H
#define T_CORE_EXPORT
Definition: tglobal.h:81
The TRedis class provides a means of operating a Redis system.
Definition: tredis.h:13
QString getsSets(const QByteArray &key, const QString &value)
Atomically sets the key to the string value and returns the old string value stored at the key...
Definition: tredis.h:78
int rpushs(const QByteArray &key, const QStringList &values)
Inserts all the string values at the tail of the list stored at the key.
Definition: tredis.h:83
bool setsEx(const QByteArray &key, const QString &value, int seconds)
Sets the key to hold the string value and set the key to timeout after a given number of seconds...
Definition: tredis.h:73
QString gets(const QByteArray &key)
Returns the string associated with the key; otherwise returns a null string.
Definition: tredis.h:63
int lpushs(const QByteArray &key, const QStringList &values)
Inserts all the string values at the tail of the list stored at the key.
Definition: tredis.h:88
bool sets(const QByteArray &key, const QString &value)
Sets the key to hold the string value.
Definition: tredis.h:68
QString lindexs(const QByteArray &key, int index)
Returns the string at the index in the list stored at the key.
Definition: tredis.h:98
QStringList lranges(const QByteArray &key, int start, int end)
Returns the specified elements of the list stored at the key.
Definition: tredis.h:93
virtual ~TRedis()
Definition: tredis.h:18