Redis и Symfony PSR16 кэш - PullRequest
       12

Redis и Symfony PSR16 кэш

0 голосов
/ 25 сентября 2019

Я сохраняю значение в кэш 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...