Основные вопросы о кэше памяти в PHP

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

У меня есть несколько вопросов, но, поскольку они очень простые, я подумал, что было бы хорошо объединить их в один вопрос Stackoverflow.

Если им требуется ответ в виде эссе, пожалуйста, не беспокойтесь, и я опубликую его как отдельный вопрос

  1. Когда мне нужно будет использовать memcache :: addServer и в чем разница между этим и memcache :: connect ?
  2. Записывает ли memcache сохраненные значения, если ему не хватает памяти, даже если срок действия элемента еще не истек?
  3. Что бы я использовал memcache :: getExtendedStats для?
  4. Как мне проверить, существует ли уже соединение с кэшем памяти, а если нет, создать соединение?
  5. Если у меня установлен мой обычный сервер кэша памяти «localhost», как мне поступить? настраивать другой сервер memcache на моем выделенном сервере?
  6. Помимо большего объема памяти, в чем преимущество наличия более одного сервера memcache?
  7. Следует ли мне регулярно проверять наличие обновлений сервера memcache?
  8. Используется ли много памяти для запуска memcache :: connect в начало каждой страницы, даже если я ее не использую?
  9. Когда я могу вернуть ошибки и как их отловить?
  10. Что наиболее важно, если я использую memcache в другом классе, который имеет несколько методов, которые могут вызывается более одного раза для каждого сценария, как мне выполнить инициализацию объекта и подключение к серверу в каждом методе?

Я предполагаю, что последний вопрос будет делать это так:

class test {
     public function blah(){
          // Make sure the memcache object is accessible
          global $memcache;

          // Do something ...
          // Save result in memcache
          $memcache->set(...);
     }
     public function foo(){
          // Do something ...
          // No use for memcache
     }
}

// Initialise each class
$test = new test;
$memcache = new memcache;
$memcache->connect(...);

// Call some methods from the test class
$test->blah();
$test->foo();
$test->blah();

Как вы можете видеть на В приведенном выше примере я подключаюсь к серверу memcache в начале скрипта.Если бы я включил это в начало каждой страницы, даже на страницах, которые не используют кэш памяти, увеличило бы это время отклика намного или минимально? Следовательно, вопрос 8!

8
задан Ben Carey 3 February 2012 в 17:34
поделиться