кэш-память по сравнению с memcached?

Почему Вы изменяете someones пароль, когда кто-то отсутствует, и другой человек хочет/нуждается работу? почти каждый человек хранит не связанные с работой данные в их учетных записях в эти дни. Необходимо перемещать только необходимые данные из их пространства и помещать его в пространство, которое принадлежит пользователю, который требует его.

76
задан 21 September 2009 в 08:12
9 ответов

Короткий ответ: Любой - то, что Вы ищете, но моим предпочтительным вариантом была бы кэш-память (первый, который Вы перечислили), просто на основе его корректного использования номенклатуры.

Теперь вот то, как я пришел к тому заключению:

Вот быстрое краткое описание в соглашениях о присвоении имен (для незнакомых), который объясняет разочарование задающим вопрос: Для многих *отклоняют приложения, часть, которая делает работу бэкенда, называют, "демон" (думайте "сервис" на земле Windows), в то время как интерфейсное или клиентское приложение - то, что Вы используете для управления или получаете доступ к демону. Демона чаще всего называют тем же как клиент с буквой "d", добавленной к нему. Например, "IMAP" был бы клиентом, который соединяется с "imapd" демоном.

Это соглашение о присвоении имен ясно придерживается к кэш-памятью, когда Вы читаете, введение в модуль кэш-памяти (заметьте различие между кэш-памятью и memcached в этой выборке):

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

Модуль Кэш-памяти также обеспечивает обработчик сессий (кэш-память).

Больше информации о memcached может быть найдено по» http://www.danga.com/memcached/.

Разочарование здесь вызывается автором расширения PHP, которое плохо назвали memcached, так как это совместно использует то же имя как фактический демон, названный memcached. Заметьте также, что во введении в memcached (php модуль), это упоминает libmemcached, который является общей библиотекой (или API), который используется модулем для доступа к memcached демону:

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

Это расширение пользуется libmemcached библиотекой для обеспечения API для общения с memcached серверы. Это также обеспечивает обработчик сессий (memcached).

Информация о libmemcached может быть найдена по» http://tangent.org/552/libmemcached.html.

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

24
ответ дан 28 November 2019 в 19:27
  • 1
    Является название проекта действительно соответствующей причиной отобрать одну реализацию другой? –  David Pashley 8 September 2009 в 20:41
  • 2
    David: Не совсем..., но it' s, конечно, действительно причина оставить конкретную реализацию до последнего в моем тестировании, таким образом, эффективно давая предпочтение другому (s). Я, скорее всего, все еще испытал бы все реализации, доступные, но технические дефекты в описаниях программного обеспечения автора имеют тенденцию заставлять меня задаться вопросом о том, какие технические дефекты могут лечь в программном обеспечении. Я действительно читал Ваш комментарий, тем не менее, о фактическом программном обеспечении, таким образом, я дал Вам upvote для Вашего ответа также.:-) –  Jessica McKinnon 8 September 2009 в 21:33
  • 3
    Я никогда не думал " d" в memcached, чтобы означать deamon, но означать причастие прошедшего времени кэша глагола. Плюс, Вы couldn' t называют новый интерфейс как " memcache" с тех пор уже был один с тем именем. –  GetFree 17 May 2010 в 02:24
  • 4
    Erm, оба не функционально то же: memcached маркеры аварии поддержек, например, memcache не делает. При необходимости в них Вы знаете который (плохо назвал или не) выбрать. –  Wrikken 24 September 2010 в 14:53

Вы, вероятно, хотите видеть Клиентское Сравнение PHP.

Короткая версия: Они будут и работать, и на большинство случаев, которые любой сделает очень хорошо.

Относительно другой проблемы: Да, необходимо смочь сделать telnet 127.0.0.1 11211. Очень немного брандмауэров заблокировали бы localhost от общения с собой. Если Вы не можете соединить, проверить, что memcached действительно работает путем выполнения ps auxwww | grep memcached, который также покажет Вам, параметры командной строки раньше запускали memcached. Один из аргументов должен быть -p 11211 или другой номер порта. Посмотрите man memcached для значения всех возможных аргументов.

57
ответ дан 28 November 2019 в 19:27
  • 1
    Upvote для добавления некоторых шагов поиска и устранения неисправностей. –  Jessica McKinnon 8 September 2009 в 21:37

Поскольку ссылка Nate предлагает, обе работы отлично для простого использования. Однако memcached поддерживает больше функций, которые позволяют Вам получать большую часть производительности из memcached. Протокол двоичной синхронной передачи данных уменьшает объем данных, требуемый быть отправленным между клиентом и сервером. Мультидобирается и мультимножества позволяют Вам получать/устанавливать несколько объектов одновременно. Если Вы находите необходимость в большем количестве физической привлекательности из кэш-памяти memcached является лучшим модулем. Использование libmemcached предполагает, что сама библиотека возможно более оптимизирована, чем PHP только версия.

Memcached является более свежим модулем по сравнению с кэш-памятью, только будучи выпущенные 8 месяцев назад. Если необходимо быть нацелены на более старую версию PHP, то можно только действительно использовать кэш-память.

28
ответ дан 28 November 2019 в 19:27

Используя php-кэш-память недавно, я должен был бы указать на Вас на php-memcached.

Вот несколько причин первое, что пришло на ум..

1) Нет никакого getErrorCode () или эквивалентный метод, поэтому если добираются (), возвращает FALSE, Вы будете понятия не иметь, является ли поэтому значение, сохраненное в кэш-памяти, ложью, или была ли какая-то проблема.

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

6
ответ дан 28 November 2019 в 19:27

Я работаю над книгой "Опытный PHP и MySQL". Я записал в значительной степени то же самое о различиях. То, что я рекомендовал, было PECL/memcached. № 1 - это переносит полнофункциональную хорошо работающую библиотеку C № 2 - это позже сохраняется. № 3 - больше функций. Никакое умаление к PECL/memcache.

2
ответ дан 28 November 2019 в 19:27

У обоих есть проблемы с сегодняшнего дня. PECL/memcache стар и надежен, за немногим исключением где это датировано. PECL/memcached 1.x является бетой в лучшем случае Некоторые функции не имеют дело с числовыми ключами, это пропускает соединения при использовании постоянных соединений. Некоторые (все?) фиксируется в GitHub и будет выпущен в какой-то момент в 2.x, но не сегодня. Поскольку более подробный обзор видит http://brian.moonspot.net/php-memcached-issues

3
ответ дан 28 November 2019 в 19:27

Более старый, более с ошибками называют php-memcache потому что это казалось самым соответствующим именем. Более новую, лучшую версию, независимо разработанную людьми в Digg, вместо этого назвали php-memcached в интересах разрешения неоднозначности.

Люди, которые рекомендовали бы Вам, отбирают один, другие основанные только на правильности имени действительно не имеют никакого бизнеса, дающего технический совет.

21
ответ дан 28 November 2019 в 19:27
  • кэш-память является клиентом memcached (сервер)
  • libmemcached является также клиентом к memcached

И существуют другие клиенты для memcached, видят http://code.google.com/p/memcached/wiki/Clients

Сокращение и вставка от сети:

http://www.php.net/manual/en/intro.memcache.php

  Memcache module provides handy procedural and object oriented 
  interface to memcached, highly effective caching daemon, which was 
  especially designed to decrease database load in dynamic web applications.
The Memcache module also provides a session handler (memcache).
More information about memcached can be found at » www.memcached.org 

http://www.php.net/manual/en/intro.memcached.php

   » memcached (http://www_memcached_org/) is a high-performance, distributed 
  memory object caching system, generic in nature, but intended for use in 
  speeding up dynamic web applications by alleviating database load.
  This extension uses libmemcached library to provide API for communicating with
  memcached servers. It also provides a session handler (memcached).
  Information about libmemcached can be found at 
   » tangent.org/552/libmemcached.html

http://pecl.php.net/package/memcached "расширение PHP для взаимодействия через интерфейс с memcached через libmemcached библиотеку" Это расширение пользуется libmemcached библиотекой для обеспечения API для общения с memcached серверы. https://github.com/andreiz/php-memcached

http://pecl.php.net/package/memcache "memcached дополнительный" Memcached является кэширующимся демоном, разработанным специально для динамических веб-приложений для уменьшения загрузки базы данных, храня объекты в памяти. Это расширение позволяет Вам работать с memcached через удобное OO и процедурные интерфейсы.

http://code.google.com/p/memcached/wiki/PHPClientComparison

                        pecl/memcache      pecl/memcached
  First Release Date      2004-06-08         2009-01-29 (beta)
  Actively Developed?     Yes                    Yes
  External Dependency     None              libmemcached
-3
ответ дан 28 November 2019 в 19:27

У меня были довольно серьезные проблемы с Drupal 6 и php-pecl-memcached, при которых время отклика задерживалось до 5 мс на вызов, что приводило к созданию одного конкретного сайта В 5 раз больше вызовов, чем до перехода на php-pecl-memcached. Переход на php-pecl-memcache устранил все проблемы; задержка и дополнительные вызовы.

Этот ответ предназначен исключительно для того, чтобы помочь тем, кто использует Drupal 6 и, возможно, Drupal 7.

0
ответ дан 28 November 2019 в 19:27

Теги

Похожие вопросы