我是靠谱客的博主 能干啤酒,最近开发中收集的这篇文章主要介绍php redis自加1,phpredis中incr以及decr等自增命令出现的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在做项目中使用redis的incr以及hincrby自增时,出现自增失败,set之后的数据,无法自增,当redis中不存在该key时,直接用incr是成功的。查找了原因,是因为phpredis初始化的时候,设置了php序列化,即:$redis->setOption( Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP );

const OPT_SERIALIZER        = 1;

const SERIALIZER_PHP        = 1;

每次在redis中去set的时候,都会对值进行序列化操作,

直接在redis-cli中操作:set key 1;get得到的值为“1”;此时是可以incr自增操作的,自增后获取的值为“2”;

当通过项目中php实例化操作之后,即在项目中执行 $redis->set(key,2);之后,在$redis->incr(key)时失败,然后在redis-cli中获取值时发现值变为“i:2”,不再是整形“2”了,因此自增失败。

所以,我感觉可以不序列化,或者对需要自增的数据,不要进行set等操作。

最后

以上就是能干啤酒为你收集整理的php redis自加1,phpredis中incr以及decr等自增命令出现的问题的全部内容,希望文章能够帮你解决php redis自加1,phpredis中incr以及decr等自增命令出现的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部