Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Redis和symfony PSR16缓存_Php_Symfony_Caching_Redis - Fatal编程技术网

Php Redis和symfony PSR16缓存

Php Redis和symfony PSR16缓存,php,symfony,caching,redis,Php,Symfony,Caching,Redis,我正在使用symfony\Component\cache\Psr16Cache实现将一个值从symfony应用程序保存到Redis缓存中。我知道 $cache->set('key',[ 'value1' => (new \DateTime())->getTimestamp(), 'value2' => (new \DateTime())->getTimestamp(), 'value3' => 'message' ]) 显然,两个\D

我正在使用
symfony\Component\cache\Psr16Cache
实现将一个值从symfony应用程序保存到Redis缓存中。我知道

$cache->set('key',[
    'value1' => (new \DateTime())->getTimestamp(),
    'value2' => (new \DateTime())->getTimestamp(),
    'value3' => 'message'
])
显然,两个
\Datetime
是不同的。它将数组和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库中的什么调用从PSR16 symfony实现保存的序列化值获取数组?

可能是个愚蠢的问题,但您没有在此处调用\DateTime构造函数,不是吗?类似于
(new\DateTime())->getTimestamp()
是的,当然,我只是在这里手动键入代码,抱歉,现在将更新。与此同时,我发现是symfony的PSR16组件预处理了数据,可能是为了保存缓存值的数据类型