您好,欢迎访问一九零五行业门户网

PHP redis hIncrBy 递增出现问题

第一次请求的时候,hgetall返回的count_comment是58,然后hincrby +1后再hgetall,返回的count_comment预期为59却变成1了。没有实现预期递增效果。
再次执行同样请求,hgetall返回的count_comment是1,然后hincrby +1后再hgetall,返回的count_comment是2了。这次请求hincrby +1是实现的预期递增。
不太清楚是什么情况造成,找了好久没找到原因。
这里的redis中使用phpredis来连接
count_comment都是string类型。
回复内容:
第一次请求的时候,hgetall返回的count_comment是58,然后hincrby +1后再hgetall,返回的count_comment预期为59却变成1了。没有实现预期递增效果。
再次执行同样请求,hgetall返回的count_comment是1,然后hincrby +1后再hgetall,返回的count_comment是2了。这次请求hincrby +1是实现的预期递增。
不太清楚是什么情况造成,找了好久没找到原因。
这里的redis中使用phpredis来连接
count_comment都是string类型。
我找到问题了
this is expected, you can't run incr, incrby, or hincrby on serialized data.
初始化redis时,使用的是serializer格式下存储
$redis->setoption(redis::opt_serializer, redis::serializer_igbinary);
其它类似信息

推荐信息