Как соединить сервер MemCached?

Оболочки сторонних данных - хороший способ агрегирования на нескольких базах данных или серверах.

https://www.percona.com/blog/2018/08/21/foreign-data-wrappers-postgresql-postgres_fdw/

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

8
задан GateKiller 9 December 2008 в 12:32
поделиться

4 ответа

Я использовал BeITMemcached, и в этом Вы создаете экземпляр MemcacheClient и устанавливаете серверы, которые Вы хотите использовать, так же, как строки.

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

Проверьте здесь, чтобы видеть, как серверы обрабатывают обработку отказа.

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

5
ответ дан 5 December 2019 в 11:28
поделиться

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

профессионалы:

  • почти нуль наверху, устройство хранения данных и пропускная способность растут линейно.
  • серверный код сохранен простым и надежным.

недостатки:

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

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

7
ответ дан 5 December 2019 в 11:28
поделиться

http://repcached.lab.klab.org/

Кроме того, клиент кэш-памяти PHP PECL может копировать данные в несколько серверов, видеть memcache.redundancy.

2
ответ дан 5 December 2019 в 11:28
поделиться

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

В большом количестве случая (принимающий Вас не пишут Facebook) RDMS достаточно быстр для кэширования. Просто составьте таблицу, которая имеет ключ и столбец блоба. Если сервер RDBS будет иметь достаточно поршня, то все данные будут в RAM и просто сохранены на диск, чтобы позволить восстановление.

Помните, что это могло быть отдельным сервером (серверами) от Вашего основного сервера базы данных.

Если Вы хотите стать более необычными и используете высокопроизводительный RDMS, Вы можете настраивать уведомления об изменении на запросах, которые используются для создания “кэшированных данных”, которые удаляют устаревшие строки из кэша.

Кто-то можно настроить триггеры для очистки недопустимых строк от кэша, однако это может быть очень сложно очень быстро.

1
ответ дан 5 December 2019 в 11:28
поделиться
Другие вопросы по тегам:

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