Я использую Redis в качестве хранилища сеансов на своем веб-сайте (Laravel 4.2). Иногда я получаю следующие ошибки. Я предполагаю, что символ ">" сломал команды setex.
production.ERROR: exception 'Predis\ServerException' with message 'ERR unknown command '>'' in
production.ERROR: exception 'Predis\ServerException' with message 'ERR unknown command 'tml>''
production.ERROR: exception 'Predis\ServerException' with message 'ERR unknown command '</div>''
Эти ошибки редко возникают на рабочем сервере, и я не могу их воспроизвести. Есть ли у вас какие-либо идеи, почему возникают эти ошибки и как я могу их предотвратить?
key: laravel:xxxxxxxxxxxxxxx
value: s:217:"a:4:{s:6:"_token";s:40:"xxxxxxxxxxx";s:4:"lang";s:2:"fr";s:9:"_sf2_meta";a:3:{s:1:"u";i:1461777248;s:1:"c";i:1461777248;s:1:"l";s:1:"0";}s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";
exception 'Predis\ServerException' with message 'ERR unknown command 'ml>'' in vendor/predis/predis/lib/Predis/Client.php:282
Обновить
Пример кода, где я использую Redis.
public function view($username = null)
{
$username = mb_strtolower($username);
$redis = $this->getRedis();
try{
$view = $redis->get(User::getCacheKeyByUsername($username));
}catch (\Exception $exception){
$view = null;
}
if($view === null || Session::has("admin")){
$user = User::where('username', '=', $username)->where("status", 1)->first();
if (empty($user)) {
return Redirect::to(Session::get("lang") . '/all');
}
$view = View::make("view", array("user" => $user));
if(!Session::has("admin")){
try{
$redis->setex(User::getCacheKeyByUsername($username), 3600, $view);
}catch (\Exception $exception){
Log::error($exception->getMessage());
}
}
}
return $view;
}
->render()
просмотреть, прежде чем передать его в Redis? Просто вместо$view
попробуйте поставить$view->render()
- person Giedrius Kiršys   schedule 11.05.2016htmlspecialchars
иhtmlspecialchars_decode
- person Giedrius Kiršys   schedule 11.05.2016serialize($view)
или закодировать его каким-либо другим способом и десериализовать/декодировать его при извлечении. - person Leentje   schedule 13.05.2016