PHP redis hIncrBy 递增出现问题

图片描述

第一次请求的时候,hGetAll返回的count_comment58,然后hincrBy +1后再hGetAll,返回的count_comment预期为59却变成1了。没有实现预期递增效果。

图片描述

再次执行同样请求,hGetAll返回的count_comment1,然后hincrBy +1后再hGetAll,返回的count_comment2了。这次请求hincrBy +1是实现的预期递增。

图片描述

不太清楚是什么情况造成,找了好久没找到原因。
这里的redis中使用phpredis来连接
count_comment都是string类型。

阅读 6.6k
1 个回答

我找到问题了

This is expected, you can't run INCR, INCRBY, or HINCRBY on serialized data.

初始化redis时,使用的是SERIALIZER格式下存储

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题