刚才源码贴错了,修改一下

翻了下 phpredis 扩展的源码,应该是 2.0.9 开始做的兼容。

在调用 incr 时,可选的带一个long类型的数字,如果数字不为1,调用 incrby。

顺便说一句,incrBy 的时候,如果后面参数是 1,会调用 incr。

PHP_METHOD(Redis, incr){
zval *object;
RedisSock *redis_sock;
char *key = NULL;
int key_len;
long val = 1;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|l",
&object, redis_ce,
&key, &key_len, &val) == FAILURE) {
RETURN_FALSE;
}
if(val == 1) {
redis_atomic_increment(INTERNAL_FUNCTION_PARAM_PASSTHRU, "INCR", 1);
} else {
redis_atomic_increment(INTERNAL_FUNCTION_PARAM_PASSTHRU, "INCRBY", val);
}
}