Здравствуйте, я использую Redis в качестве разработчика игр, и у меня возникла хитрая проблема, которую я много отлаживал.В основном, у меня в игровом клиенте есть переменная, которая устанавливается с помощью ключа от redis с использованием phpredis.
В моем игровом клиенте:
my_user = input_from_server;
Так, что my_user теперь содержит строковое значение «piece», которое я буду использовать для настройки нового списка повторного отображения.
Итак, чтобы описать мою проблему, когда я нажимаю на клавишу «piece»из отдельного игрового клиента я могу получить «кусок» из redis-cli, кроме того, я могу получить «другой» игровой клиент, когда я статически печатаю «кусок», но когда я использую переменную my_user, это не работает.
Я уверен, что переменная my_user содержит строковое значение "piece".
Возможно, для более ясного подведения итогов, на моем сервере у меня есть это:
<?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);
//parse my data in to separate variables
if ($data != null) {
$key = $data['key'];
$value = $data['value'];
}
$my_echo = $redis->rpop($key);
print $my_echo;
?>
, который работает, только если входящие данные не были установлены из redis.В настоящее время я использую только списки в моей базе данных redis, поэтому нет никакой путаницы относительно того, какой тип ключа я получаю.
Мне кажется, что я ем сумасшедшие таблетки, потому что все работает нормально, пока я не начну использовать динамически устанавливаемые переменные.
Хорошо, я запустил ключи в своей базе данных и обнаружил следующее:
129) "аморальный" 130) "a \ xe4 \ xbd \ xa0" 131) "afpfqp" 132) "a \ xe4 \ xbd \ xa0 \ xe6 \ x88 \ x91 \ xe5 \ xa5 \ xb9" 133) "a \ xe9 \ xab \ x98 \ xe8 \ x80 \ x83 \ xe5 \ x93 \ xa6 \ xe5 \ x9c \ xa8 \ xe6 \ x88 \ x91 \ xe4 \ xbb \ xac \ xe5 \ x93 \ xa6 \ xe5 \ x85 \x9c \ xef \ xbc \ x8ctu "134)" httpass1 "
Ключи с обратной косой чертой не те, которые я ожидал.Это какая-то кодировка?И есть ли способ обойти это?