| 378 | } |
| 379 | |
| 380 | int redis_key::renamenx(const char* key, const char* newkey) |
| 381 | { |
| 382 | const char* argv[3]; |
| 383 | size_t lens[3]; |
| 384 | |
| 385 | argv[0] = "RENAMENX"; |
| 386 | lens[0] = sizeof("RENAMENX") - 1; |
| 387 | |
| 388 | argv[1] = key; |
| 389 | lens[1] = strlen(key); |
| 390 | |
| 391 | argv[2] = newkey; |
| 392 | lens[2] = strlen(newkey); |
| 393 | |
| 394 | build_request(3, argv, lens); |
| 395 | const redis_result* result = run(); |
| 396 | if (result == NULL) { |
| 397 | logger_error("result NULL, key=%s, newkey=%s", key, newkey); |
| 398 | return -2; |
| 399 | } |
| 400 | |
| 401 | if (result->get_type() == REDIS_RESULT_INTEGER) |
| 402 | return result->get_integer(); |
| 403 | else if (result->get_type() == REDIS_RESULT_ERROR) |
| 404 | return -1; |
| 405 | else { |
| 406 | logger_error("invalid type=%d, key=%s, newkey=%s", |
| 407 | result->get_type(), key, newkey); |
| 408 | return -3; |
| 409 | } |
| 410 | } |
| 411 | |
| 412 | bool redis_key::restore(const char* key, const char* value, size_t len, |
| 413 | int nttl, bool replace /* = false */) |
nothing calls this directly
no test coverage detected