Чем отличается 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 будет лучшим выбором.
Ооо ну это моя помойка сююдаааа
Это все бд ключ-значение, но есть нюанс
APCu является расширением для PHP, которое предоставляет кэш на уровне процесса. Это означает, что данные, кэшированные с помощью APCu, доступны только в пределах одного процесса PHP. Если скрипты запускаются в разных процессах PHP, они не смогут прочитать данные друг друга, поскольку APCu не предоставляет механизм распределенного доступа к кэшу между процессами.
С другой стороны, Memcached является отдельным приложением, которое работает вне процесса PHP. Оно предоставляет распределенный кэш, который может использоваться несколькими приложениями или серверами одновременно. Это позволяет хранить данные в памяти и обеспечивать доступ к ним из разных окружений. Например, вы можете запустить Memcached на одном сервере и подключить его к нескольким серверам или приложениям, используя его для кэширования данных и ускорения доступа к ним. (APCu на максималках (?))
Redis тоже можно запускать на одном сервере и подключаться через другой, но так же Redis предоставляет более разнообразные структуры данных, такие как строки, хэши, списки, наборы и сортированные наборы. Это позволяет хранить более сложные типы данных и выполнять различные операции над ними. Еще в Redis есть:
1. Транзакции - выполнять группу команд как единое целое
2. Pub/Sub - механизм для организации каналов для передачи сообщений между различными клиентами (ненад как брокер сообщений юзать
3. Персистентность данных - возможность сохранять данные на диск, обеспечивая сохранность данных после перезапуска сервера.
4. Репликация - основной сервер принимает записи от клиентов и реплицирует их на вторичные сервера. Можно распределить нагрузку, читая данные со вторичных серверов.
А в каких ситуациях что юзать?
APCu
Memcached
Redis
Please open Telegram to view this post
VIEW IN TELEGRAM
