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

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,有些蒙

阿神
阿神

闭关修行中......

répondre à tous(3)
刘奇

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

洪涛

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

PHPzhong

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal