2 #include "RedisInternal.h" 4 #pragma mark Redis class implemenation 10 int passwordLength = strlen(password);
11 if (passwordLength > 0)
13 auto cmdRet =
RedisCommand(
"AUTH", ArgList{password}).issue(conn);
14 return cmdRet->type() == RedisObject::Type::SimpleString && (String)*cmdRet ==
"OK" 15 ? RedisSuccess : RedisAuthFailure;
21 return RedisNotConnectedFailure;
26 return ((String)*
RedisCommand(
"SET", ArgList{key, value}).issue(conn)).indexOf(
"OK") != -1;
29 #define TRCMD(t, c, ...) return RedisCommand(c, ArgList{__VA_ARGS__}).issue_typed<t>(conn) 33 TRCMD(String,
"GET", key);
38 TRCMD(
bool,
"DEL", key);
43 TRCMD(
int,
"APPEND", key, value);
48 TRCMD(
int,
"PUBLISH", channel, message);
53 TRCMD(
bool,
"EXISTS", key);
56 bool Redis::_expire_(
const char* key,
int arg,
const char* cmd_var)
58 TRCMD(
bool, cmd_var, key, String(arg));
63 TRCMD(
bool,
"PERSIST", key);
66 int Redis::_ttl_(
const char* key,
const char* cmd_var)
68 TRCMD(
int, cmd_var, key);
71 bool Redis::_hset_(
const char* key,
const char* field,
const char* value,
const char* cmd_var)
73 TRCMD(
int, cmd_var, key, field, value);
78 TRCMD(String,
"HGET", key, field);
83 TRCMD(
bool,
"HDEL", key, field);
88 TRCMD(
int,
"HLEN", key);
93 TRCMD(
int,
"HSTRLEN", key, field);
98 TRCMD(
bool,
"HEXISTS", key, field);
103 auto rv =
RedisCommand(
"LRANGE", ArgList{key, String(start), String(stop)}).issue(conn);
104 return rv->type() == RedisObject::Type::Array
105 ? (std::vector<String>)*((
RedisArray*)rv.get())
106 : std::vector<String>();
String hget(const char *key, const char *field)
bool del(const char *key)
bool set(const char *key, const char *value)
int hlen(const char *key)
String get(const char *key)
int publish(const char *channel, const char *message)
bool persist(const char *key)
std::vector< String > lrange(const char *key, int start, int stop)
RedisReturnValue authenticate(const char *password)
int hstrlen(const char *key, const char *field)
bool exists(const char *key)
int append(const char *key, const char *value)
bool hdel(const char *key, const char *field)
bool hexists(const char *key, const char *field)