Я сохраняю значение в кэш Redis из приложения Symfony, используя реализацию Symfony\Component\Cache\Psr16Cache
.Я делаю
$cache->set('key',[
'value1' => (new \DateTime())->getTimestamp(),
'value2' => (new \DateTime())->getTimestamp(),
'value3' => 'message'
])
Очевидно, что два \Datetime
разные.Он выполняет сериализацию объектов массива и даты и времени в строку, например:
127.0.0.10:6379> GET key
"\x00\x00\x00\x02\x14\x03\x11\x16value1\x17\bDateTime\x14\x03\x11\x04date\x11\x1a2019-09-25 09:12:00.000000\x11\rtimezone_type\x06\x03\x11\btimezone\x11\x10America/New_York\x11\x14value2\x1a\x01\x14\x03\x0e\x02\x11\x1a2019-09-28 20:39:00.000000\x0e\x04\x06\x03\x0e\x05\x0e\x06\x11\x13message\x11\x11message"
Таким образом, это тип строки, а не массива.
Тогда мне нужно прочитать этот ключ из другого приложения.Это приложение использует этот класс Redis и его вызов hgetall
, который возвращает (error) WRONGTYPE Operation against a key holding the wrong kind of value
для ключа, который я сохранил выше из другого приложения.
Вопрос: какой вызов из библиотеки Redis следует использовать для получения массива из сериализованного значения, сохраненного реализацией PSR16 Symfony?