recherche

Maison  >  Questions et réponses  >  le corps du texte

phpredis - Redis中incr的问题

Redis版本

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

<?php
$redis->set('userId',intval($start));
?>

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

<?php
$userId = $redis->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,有些蒙

阿神阿神2796 Il y a quelques jours740

répondre à tous(3)je répondrai

  • 怪我咯

    怪我咯2017-04-24 09:12:30

    Je suppose que vous avez utilisé

    lors de l'initialisation du code
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
    

    Donc, la valeur finale de la base de données est une chaîne "i:10003;", et la chaîne ne peut pas être augmentée

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

    Si vous devez utiliser la sérialisation, vous ne pouvez utiliser que zIncrBy. Ce qui est sérialisé par zIncrBy est membre et l'opération est un score, elle ne sera donc pas affectée

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-24 09:12:30

    C'est bon pour moi, vous pouvez l'essayer selon mes instructions.

    répondre
    0
  • PHPz

    PHPz2017-04-24 09:12:30

    "i:10003;"L'ensemble userId n'est pas du tout un nombre

    répondre
    0
  • Annulerrépondre