Como você pode ver nos tipos de dados do Redis, o Redis suporta apenas estes 5 tipos de dados:
- Sequência
- Lista
- Definir
- Hash
- Conjunto ordenado
Portanto, não há tipo de dados de objeto e, portanto, você não pode armazenar um objeto diretamente como um valor. Você precisa serializá-lo primeiro (ou codificá-lo em JSON com o
json_encode
função, por exemplo). Existe algum problema com a serialização que você insiste em armazenar seus objetos diretamente?
Atualização: De acordo com o que você disse nos comentários, você pode usar a abordagem indicada nesta resposta
Então você pode usar:
$xml = $simpleXmlElem->asXML();
antes da serialização e depois de
unserialize()
, use o seguinte código:$simpleXmlElem = simplexml_load_string($xml);
Dessa forma, você não precisa serializar um objeto interno do PHP como
SimpleXmlElement
diretamente e não haverá problemas.