shmop made simple:$test=get_cache('test');save_cache($test, 'test1', 600);To save/get cache that easily just save this as cache.php or whatever you see fit:<?phpfunction save_cache($data, $name, $timeout) { $id=shmop_open(get_cache_id($name), "a", 0, 0); shmop_delete($id); shmop_close($id); $id=shmop_open(get_cache_id($name), "c", 0644, strlen(serialize($data))); if ($id) { set_timeout($name, $timeout); return shmop_write($id, serialize($data), 0); } else return false;}function get_cache($name) { if (!check_timeout($name)) { $id=shmop_open(get_cache_id($name), "a", 0, 0); if ($id) $data=unserialize(shmop_read($id, 0, shmop_size($id))); else return false; if ($data) { shmop_close(); return $data; } else return false; } else return false; }function get_cache_id($name) { $id=array( 'test1' => 1 'test2' => 2 ); return $id[$name];}function set_timeout($name, $int) { $timeout=new DateTime(date('Y-m-d H:i:s')); date_add($timeout, date_interval_create_from_date_string("$int seconds")); $timeout=date_format($timeout, 'YmdHis'); $id=shmop_open(100, "a", 0, 0); if ($id) $tl=unserialize(shmop_read($id, 0, shmop_size($id))); else $tl=array(); shmop_delete($id); shmop_close($id); $tl[$name]=$timeout; $id=shmop_open(100, "c", 0644, strlen(serialize($tl))); shmop_write($id, serialize($tl), 0);}function check_timeout($name) { $now=new DateTime(date('Y-m-d H:i:s')); $now=date_format($now, 'YmdHis'); $id=shmop_open(100, "a", 0, 0); if ($id) $tl=unserialize(shmop_read($id, 0, shmop_size($id))); else return true; shmop_close($id); $timeout=$tl[$name]; return (intval($now)>intval($timeout));}?>