phpredis - Redis中incr的问题
阿神
阿神 2017-04-24 09:10:30
0
3
660

Redis版本

我后台的程序设置了会员ID的起始数

set('userId',intval($start)); ?>

前台的会员注册会获取这个userId,然后当做它的ID

get('userId'); if($model->insert(['userId'=>$userId])){ $redis->incr('userId'); }

但现在的问题是,我无论怎么注册会员,这个redis中的userId都不会变,在服务器上操作

incr userId

会返回错误“(error) ERR value is not an integer or out of range”

get userId "i:10003;"

求大神,没用过几次redis,有些蒙

阿神
阿神

闭关修行中......

모든 응답 (3)
刘奇

我猜想你初始化代码的时候用了

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);

所以到数据库的最终值是一个字符串"i:10003;",而字符串就不能 incr 了

$r = $redis->incr('userId'); // 这里的返回值应该是 false

如果你一定要使用序列化,只能将就使用 zIncrBy,zIncrBy 被序列化的是 member,操作的是 score,所以不会受到影响

    洪涛

    我这个是可以的,你按照我的试试。

      PHPzhong

      "i:10003;"设置的userId根本不是数字啊

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!