使用PHP在缓存上存储数据

时间:2012-02-23 15:13:37

标签: php caching

我有一个活动日历。 每个活动在日历上都有不同的位置。 每次加载页面时,我都会清空事件位置表,然后将事件的位置写入表中。

事件位置表看起来像这样

eventid     location
    1           1
    2           2
    3           1
    4           1
    5           1
    6           2
    7           3
    8           4
    9           5

还有一些其他变量,但它非常像这样。每个事件都需要知道上一个事件的位置,以便它可以决定自己的位置。

此日历也有不同的视图,每个视图使用相同的技术,因此它不是解决此问题最健康的方法。

问题是; 有没有办法将这个表的数据存储在缓存或类似的东西上,而不是每次都重写表。

1 个答案:

答案 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);

?>