Хранение данных в кеше с помощью PHP - PullRequest
1 голос
/ 23 февраля 2012

У меня есть календарь событий.Каждое событие имеет свое местоположение в календаре.Каждый раз, когда страница загружается, я очищаю таблицу местоположения события и записываю местоположение события в таблицу.

Таблица местоположения события выглядит следующим образом

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

Существуют и другие переменныено это очень похоже на это.Каждое событие должно знать местоположение предыдущего события, чтобы оно могло определять свое собственное местоположение.

Существуют также различные представления этого календаря, и каждое представление использует одну и ту же технику, поэтому это не самый здоровый способ решить эту проблему.

Вопрос в том;Есть ли способ хранить данные этой таблицы в кэше или что-то в этом роде, вместо того, чтобы переписывать таблицу каждый раз.

1 Ответ

0 голосов
/ 23 февраля 2012

Для кэширования этих данных вы можете использовать как минимум два подхода. Самый простой - это serialize() данных и сохранить их в своей базе данных. Когда вам нужно получить базу данных, запросите ее из базы данных unserialize() и используйте ее, как и раньше.

Вторым подходом является добавление memcache к вашей установке PHP и доступ к вашим данным через функции memcache. Пример :

<?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);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...