Example #1
0
void linsertCommand(redisClient *c) {
    if (strcasecmp(c->argv[2]->ptr,"after") == 0) {
        pushxGenericCommand(c,c->argv[3],c->argv[4],REDIS_TAIL);
    } else if (strcasecmp(c->argv[2]->ptr,"before") == 0) {
        pushxGenericCommand(c,c->argv[3],c->argv[4],REDIS_HEAD);
    } else {
        addReply(c,shared.syntaxerr);
    }
}
Example #2
0
void linsertCommand(client *c) {
    c->argv[4] = tryObjectEncoding(c->argv[4]);
    if (strcasecmp(c->argv[2]->ptr,"after") == 0) {
        pushxGenericCommand(c,c->argv[3],c->argv[4],LIST_TAIL);
    } else if (strcasecmp(c->argv[2]->ptr,"before") == 0) {
        pushxGenericCommand(c,c->argv[3],c->argv[4],LIST_HEAD);
    } else {
        addReply(c,shared.syntaxerr);
    }
}
// LINSERT key BEFORE|AFTER pivot(基准值) value
// LINSERT命令的实现
void linsertCommand(client *c) {
    //对基准值进行优化编码
    c->argv[4] = tryObjectEncoding(c->argv[4]);
    //比较where字符串,忽略大小写
    if (strcasecmp(c->argv[2]->ptr,"after") == 0) {
        //如果是after,则是在基准值的后插入
        pushxGenericCommand(c,c->argv[3],c->argv[4],LIST_TAIL);
    } else if (strcasecmp(c->argv[2]->ptr,"before") == 0) {
        //如果是before,则是在基准值的前插入
        pushxGenericCommand(c,c->argv[3],c->argv[4],LIST_HEAD);
    } else {
        addReply(c,shared.syntaxerr);   //否则发送语法错误信息
    }
}
Example #4
0
void rpushxCommand(redisClient *c) {
    c->argv[2] = tryObjectEncoding(c->argv[2]);
    pushxGenericCommand(c,NULL,c->argv[2],REDIS_TAIL);
}
Example #5
0
void rpushxCommand(redisClient *c) {
    pushxGenericCommand(c,NULL,c->argv[2],REDIS_TAIL);
}
Example #6
0
void lpushxCommand(redisClient *c) {
    pushxGenericCommand(c,NULL,c->argv[2],REDIS_HEAD);
}
//RPUSHX key value1
//RPUSHX命令的实现
void rpushxCommand(client *c) {
    c->argv[2] = tryObjectEncoding(c->argv[2]);
    pushxGenericCommand(c,NULL,c->argv[2],LIST_TAIL);
}