我有一个活动日历。 每个活动在日历上都有不同的位置。 每次加载页面时,我都会清空事件位置表,然后将事件的位置写入表中。
事件位置表看起来像这样
eventid location
1 1
2 2
3 1
4 1
5 1
6 2
7 3
8 4
9 5
还有一些其他变量,但它非常像这样。每个事件都需要知道上一个事件的位置,以便它可以决定自己的位置。
此日历也有不同的视图,每个视图使用相同的技术,因此它不是解决此问题最健康的方法。
问题是; 有没有办法将这个表的数据存储在缓存或类似的东西上,而不是每次都重写表。
答案 0 :(得分:0)
您可以采用至少两种方法来缓存此数据。最简单的方法是serialize()
数据并将其存储在数据库中。当您需要检索数据库时,请从数据库unserialize()
查询数据库,并像以前一样使用它。
第二种方法是将memcache添加到PHP安装中并通过memcache函数访问数据。 Example:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>