我目前正在使用 Redis 来缓存我的数据库结果。我所做的是将 db 结果放入一个数组并序列化该数组,然后将它们作为值添加到我在 Redis 缓存中的键中。
$res = $this->db->query($qry);
foreach($res->result() as $row) {
$curArr[] = $row;
}
$this->redis->set($key, serialize($curArr));
但是,每当我反序列化缓存时,它都会在偏移量中返回一个错误。
$cache_result = $this->redis->get($key);
$curArr = unserialize($cache_result);
Message: unserialize(): Error at offset 8193 of 8701 bytes
当我检查 $cache_result 时,字符串的长度是 8702,而 8194 处的字符是 ';'。该部分的字符串片段是 'Test 3\";s:7'。该字符串片段在 $cache_result 中也多次出现,但错误仅出现在 8193 中。
非常感谢您的帮助!谢谢!