2020 二月 29 , 星期六
Home / 开发语言 / PHP / (工作小记)phpredis Redis::SERIALIZER_IGBINARY 自增字段

(工作小记)phpredis Redis::SERIALIZER_IGBINARY 自增字段

最近项目中的统计出现了问题,统计数使用redis的incr 自增。修复数据后使用set xxx value 将新的数据替换老数据 发现set更新后数据又从1开始重新增加 最后发现问题出在

$this->setOption ( \Redis::OPT_SERIALIZER, \Redis::SERIALIZER_IGBINARY );

Redis::SERIALIZER_IGBINARY这个参数

Redis::SERIALIZER_IGBINARY

$redis->set("a", 3);
$redis->incr("a"); // 1
echo $redis->get("a"); // output 1

Redis::SERIALIZER_PHP

$redis->set("a", 3);
$redis->incr("a"); // false
echo $redis->get("a"); // output 3

解决方案
在保存之前临时将参数改为Redis::SERIALIZER_NONE 取消序列化
最后别忘了把它改回来

参考 https://github.com/phpredis/phpredis/issues/246

Check Also

redis 漏洞 事故总结

事故起因 合并uc数据方案采用 ...

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>