我试图将用户的请求URL作为密钥存储,并将与该密钥对应的
PHP对象存储为Redis中的值.我尝试了以下方法:
$redisClient = new Redis(); $redisClient->connect('localhost',6379); $redisClient->set($_SERVER['REQUEST_URI'],$this->page); $redisTest = $redisClient->get($_SERVER['REQUEST_URI']); var_dump($redisTest);
但是,使用此代码,存储在Redis中的URL键的值是字符串的类型,其值等于“Object”而不是实际的PHP对象.有没有办法存储PHP对象而不进行序列化?
正如您在
Redis data types中看到的,Redis仅支持以下5种数据类型:
>搅拌
>列表
>设置
>哈希
>分类集
因此,没有对象数据类型,因此您无法将对象直接存储为值.您必须先将其序列化(或者使用json_encode函数对其进行JSON编码).
串行化是否存在直接存储对象的问题?
更新:根据您在评论中所说的内容,您可以使用此answer中指出的方法
所以你可以使用:
$xml = $simpleXmlElem->asXML();
在序列化之前,然后在unserialize()之后,使用以下代码:
$simpleXmlElem = simplexml_load_string($xml);
这样,您不必直接序列化像SimpleXmlElement这样的PHP内置对象,也不会有任何问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。