int ndpi_credis_slaveof(NDPI_REDIS rhnd, const char *host, int port) { if (host == NULL || port == 0) return cr_sendfandreceive(rhnd, CR_INLINE, "SLAVEOF no one\r\n"); else return cr_sendfandreceive(rhnd, CR_INLINE, "SLAVEOF %s %d\r\n", host, port); }
static int cr_push(REDIS rhnd, int left, const char *key, const char *val) { #ifdef ORIGINAL return cr_sendfandreceive(rhnd, CR_INLINE, "%s %s %s\r\n%zu\r\n", left==1?"LPUSH":"RPUSH", key, val, strlen(val)); #else return cr_sendfandreceive(rhnd, CR_INLINE, "%s %s %s\r\n", left==1?"LPUSH":"RPUSH", key, val); #endif }
int ndpi_credis_set(NDPI_REDIS rhnd, const char *key, const char *val) { #ifdef ORIGINAL return cr_sendfandreceive(rhnd, CR_INLINE, "SET %s %zu\r\n%zs\r\n", key, strlen(val), val); #else /* L.Deri */ return cr_sendfandreceive(rhnd, CR_INLINE, "SET %s %s\r\n%zu\r\n", key, val, strlen(val)); #endif }
int credis_set(REDIS rhnd, const char *key, const char *val) { #ifdef ORIGINAL return cr_sendfandreceive(rhnd, CR_INLINE, "SET %s %zu\r\n%zs\r\n", key, strlen(val), val); #else #if 0 /* L.Deri */ return cr_sendfandreceive(rhnd, CR_INLINE, "SET %s %d\r\n", key, strlen(val)); #else //return cr_sendfandreceive(rhnd, CR_INLINE, "*3\r\n$3\r\nSET\r\n$%zu\r\n%s\r\n$%zu\r\n%s\r\n", strlen(key), key, strlen(val), val); return cr_sendfandreceive(rhnd, CR_INLINE, "*3\r\n$3\r\nSET\r\n$%u\r\n%s\r\n$%u\r\n%s\r\n", strlen(key), key, strlen(val), val); #endif #endif }
static int cr_incr(NDPI_REDIS rhnd, int incr, int decr, const char *key, int *new_val) { int rc = 0; if (incr == 1 || decr == 1) rc = cr_sendfandreceive(rhnd, CR_INT, "%s %s\r\n", incr>0?"INCR":"DECR", key); else if (incr > 1 || decr > 1) rc = cr_sendfandreceive(rhnd, CR_INT, "%s %s %d\r\n", incr>0?"INCRBY":"DECRBY", key, incr>0?incr:decr); if (rc == 0 && new_val != NULL) *new_val = rhnd->reply.integer; return rc; }
int ndpi_credis_lastsave(NDPI_REDIS rhnd) { int rc = cr_sendfandreceive(rhnd, CR_INT, "LASTSAVE\r\n"); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int ndpi_credis_move(NDPI_REDIS rhnd, const char *key, int index) { int rc = cr_sendfandreceive(rhnd, CR_INT, "MOVE %s %d\r\n", key, index); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_lindex(NDPI_REDIS rhnd, const char *key, int index, char **val) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "LINDEX %s %d\r\n", key, index); if (rc == 0 && (*val = rhnd->reply.bulk) == NULL) return -1; return rc; }
int ndpi_credis_expire(NDPI_REDIS rhnd, const char *key, int secs) { int rc = cr_sendfandreceive(rhnd, CR_INT, "EXPIRE %s %d\r\n", key, secs); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_dbsize(NDPI_REDIS rhnd) { int rc = cr_sendfandreceive(rhnd, CR_INT, "DBSIZE\r\n"); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int ndpi_credis_randomkey(NDPI_REDIS rhnd, char **key) { int rc = cr_sendfandreceive(rhnd, CR_INLINE, "RANDOMKEY\r\n"); if (rc == 0 && key) *key = rhnd->reply.line; return rc; }
int credis_ttl(REDIS rhnd, const char *key) { int rc = cr_sendfandreceive(rhnd, CR_INT, "TTL %s\r\n", key); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int credis_exists(REDIS rhnd, const char *key) { int rc = cr_sendfandreceive(rhnd, CR_INT, "EXISTS %s\r\n", key); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_spop(NDPI_REDIS rhnd, const char *key, char **member) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "SPOP %s\r\n", key); if (rc == 0 && (*member = rhnd->reply.bulk) == NULL) rc = -1; return rc; }
int ndpi_credis_del(NDPI_REDIS rhnd, const char *key) { int rc = cr_sendfandreceive(rhnd, CR_INT, "DEL %s\r\n", key); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_get(NDPI_REDIS rhnd, const char *key, char **val) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "GET %s\r\n", key); if (rc == 0 && (*val = rhnd->reply.bulk) == NULL) return -1; return rc; }
int ndpi_credis_scard(NDPI_REDIS rhnd, const char *key) { int rc = cr_sendfandreceive(rhnd, CR_INT, "SCARD %s\r\n", key); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int ndpi_credis_substr(NDPI_REDIS rhnd, const char *key, int start, int end, char **substr) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "SUBSTR %s %d %d\r\n", key, start, end); if (rc == 0 && substr) *substr = rhnd->reply.bulk; return rc; }
int ndpi_credis_append(NDPI_REDIS rhnd, const char *key, const char *val) { int rc = cr_sendfandreceive(rhnd, CR_INT, "APPEND %s %zu\r\n%s\r\n", key, strlen(val), val); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int ndpi_credis_renamenx(NDPI_REDIS rhnd, const char *key, const char *new_key_name) { int rc = cr_sendfandreceive(rhnd, CR_INT, "RENAMENX %s %s\r\n", key, new_key_name); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_setnx(NDPI_REDIS rhnd, const char *key, const char *val) { int rc = cr_sendfandreceive(rhnd, CR_INT, "SETNX %s %zu\r\n%s\r\n", key, strlen(val), val); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_getset(NDPI_REDIS rhnd, const char *key, const char *set_val, char **get_val) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "GETSET %s %zu\r\n%s\r\n", key, strlen(set_val), set_val); if (rc == 0 && (*get_val = rhnd->reply.bulk) == NULL) return -1; return rc; }
static int cr_pop(NDPI_REDIS rhnd, int left, const char *key, char **val) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "%s %s\r\n", left==1?"LPOP":"RPOP", key); if (rc == 0 && (*val = rhnd->reply.bulk) == NULL) return -1; return rc; }
int ndpi_credis_zremrangebyscore(NDPI_REDIS rhnd, const char *key, double min, double max) { int rc = cr_sendfandreceive(rhnd, CR_INT, "ZREMRANGEBYSCORE %s %f %f\r\n", key, min, max); if (rc == 0) rc = rhnd->reply.integer; return rc; }
int ndpi_credis_zremrangebyrank(NDPI_REDIS rhnd, const char *key, int start, int end) { int rc = cr_sendfandreceive(rhnd, CR_INT, "ZREMRANGEBYRANK %s %d %d\r\n", key, start, end); if (rc == 0) rc = rhnd->reply.integer; return rc; }
/* TODO what does Redis return if member is not member of set? */ static int cr_zrank(NDPI_REDIS rhnd, int reverse, const char *key, const char *member) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "%s %s %zu\r\n%s\r\n", reverse==1?"ZREVRANK":"ZRANK", key, strlen(member), member); if (rc == 0) rc = atoi(rhnd->reply.bulk); return rc; }
/* TODO what does Redis return if member is not member of set? */ int ndpi_credis_zincrby(NDPI_REDIS rhnd, const char *key, double incr_score, const char *member, double *new_score) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "ZINCRBY %s %f %zu\r\n%s\r\n", key, incr_score, strlen(member), member); if (rc == 0 && new_score) *new_score = strtod(rhnd->reply.bulk, NULL); return rc; }
int ndpi_credis_zrem(NDPI_REDIS rhnd, const char *key, const char *member) { int rc = cr_sendfandreceive(rhnd, CR_INT, "ZREM %s %zu\r\n%s\r\n", key, strlen(member), member); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
int ndpi_credis_zadd(NDPI_REDIS rhnd, const char *key, double score, const char *member) { int rc = cr_sendfandreceive(rhnd, CR_INT, "ZADD %s %f %zu\r\n%s\r\n", key, score, strlen(member), member); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }
static int cr_setaddrem(NDPI_REDIS rhnd, const char *cmd, const char *key, const char *member) { int rc = cr_sendfandreceive(rhnd, CR_INT, "%s %s %zu\r\n%s\r\n", cmd, key, strlen(member), member); if (rc == 0 && rhnd->reply.integer == 0) rc = -1; return rc; }