bool redis_string::incoper(const char* cmd, const char* key, long long int* n, long long int* result) { size_t argc = 2; const char* argv[3]; size_t lens[3]; argv[0] = cmd; lens[0] = strlen(cmd); argv[1] = key; lens[1] = strlen(key); char buf[INT64_LEN]; if (n != NULL) { (void) acl_i64toa(*n, buf, sizeof(buf)); argv[2] = buf; lens[2] = strlen(buf); argc++; } hash_slot(key); build_request(argc, argv, lens); bool success; if (result != NULL) *result = get_number64(&success); else (void) get_number64(&success); return success; }
bool redis_hash::hincrby(const char* key, const char* name, long long int inc, long long int* result /* = NULL */) { const char* names[1]; names[0] = name; char buf[INT64_LEN]; (void) acl_i64toa(inc, buf, sizeof(buf)); const char* values[1]; values[0] = buf; hash_slot(key); build("HINCRBY", key, names, values, 1); bool success; if (result != NULL) *result = get_number64(&success); else (void) get_number64(&success); return success; }
long long int redis_key::pttl(const char* key) { const char* argv[2]; size_t lens[2]; argv[0] = "PTTL"; lens[0] = sizeof("PTTL") - 1; argv[1] = key; lens[1] = strlen(key); hash_slot(key); build_request(2, argv, lens); bool success; long long int ret = get_number64(&success); if (success == false) return -3; else return ret; }