phpredis rpop возвращает false, когда ключ существует - PullRequest
0 голосов
/ 23 мая 2018

Я создаю игровое приложение, которое использует redis, и это мой скрипт php.

<?php
//melon game pop

//connect to redis db
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);


//receive the data as json
//$data = json_decode(file_get_contents('php://input'), true);
$data = null;


//decided to just grab the string
$key = file_get_contents('php://input');

//Shotgun debugging in action
$my_key = trim($key);

/*
 was originally sending json on reading into variables from array decided to simplify until my issue is resolved
//parse my data in to separate variables  
if ($data != null) {
$key = $data['key'];
//$value = $data['value'];  

//$key = utf8_decode($key);        
}
else
{
print "It's not recognizing your data!";
}
*/




$my_echo = $redis->rpop($my_key);

 //it returns false if the key doesn't exist, but i've shown that it clearly exists so  why is it returning false???

if ($my_echo == false) {

print $my_key;
//print '5'.$key;

//print "5failure";

}
else
{
print $my_echo;
}
?>

То, что я делаю в приведенном выше коде, это то, что игровой клиент отправляет $ key на php, и я хочувывести значение, хранящееся в $ key, которое в этом случае было "ubuntu5".В моем блоке отладки, когда я печатаю $ my_key, он отвечает «ubuntu5», поэтому я пытаюсь выяснить, почему он не будет печатать значение, хранящееся в $ my_key.Кроме того, когда я открываю redis-cli из терминала и запускаю rpop "ubuntu5", он отвечает ожидаемым значением.

Есть идеи о том, что здесь может происходить?{"key": "\ nubuntuleft22"} Я использовал var_dump, а также добавил это в сценарий:

$redis->lpush("my_control",$my_key);

Когда я выталкиваю "my_control", я получаю {"key": "\ nubuntuleft22"} изодин клиент и просто Ubunturight22 от другого с помощью браузера.Когда я вручную выскакиваю из командной строки, я получаю следующее:

redis-cli
127.0.0.1:6379> rpop my_control
"ubunturight22"
127.0.0.1:6379> rpop my_control
"{ \"key\": \"\\nubuntuleft23\" }"
127.0.0.1:6379> rpop "my_control"
"ubunturight23"
127.0.0.1:6379
...