PHP помойка
3 subscribers
Download Telegram
Channel created
Channel photo updated
Чем отличается APCu🤡 от Memcached🤯 от Redis🚶‍♂️?
Ооо ну это моя помойка сююдаааа

Это все бд ключ-значение, но есть нюанс 😋

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

С другой стороны, Memcached является отдельным приложением, которое работает вне процесса PHP. Оно предоставляет распределенный кэш, который может использоваться несколькими приложениями или серверами одновременно. Это позволяет хранить данные в памяти и обеспечивать доступ к ним из разных окружений. Например, вы можете запустить Memcached на одном сервере и подключить его к нескольким серверам или приложениям, используя его для кэширования данных и ускорения доступа к ним. (APCu на максималках (?))

Redis тоже можно запускать на одном сервере и подключаться через другой, но так же Redis предоставляет более разнообразные структуры данных, такие как строки, хэши, списки, наборы и сортированные наборы. Это позволяет хранить более сложные типы данных и выполнять различные операции над ними. Еще в Redis есть:
1. Транзакции - выполнять группу команд как единое целое
2. Pub/Sub - механизм для организации каналов для передачи сообщений между различными клиентами (ненад как брокер сообщений юзать 😫)
3. Персистентность данных - возможность сохранять данные на диск, обеспечивая сохранность данных после перезапуска сервера.
4. Репликация - основной сервер принимает записи от клиентов и реплицирует их на вторичные сервера. Можно распределить нагрузку, читая данные со вторичных серверов.



А в каких ситуациях что юзать?

APCu🤡 – Если вам нужно кэшировать данные только в рамках одного процесса PHP, например, для временного хранения промежуточных результатов вычислений или запросов к базе данных


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


Redis🚶‍♂️ – Если вам нужно более сложное хранилище данных с поддержкой транзакций, публикации/подписки и персистентности данных, а также возможностью создания копий данных для обеспечения отказоустойчивости, Redis будет лучшим выбором.
Please open Telegram to view this post
VIEW IN TELEGRAM