Привет, это моя память. После выхода “Memcache и Redis (1)” в понедельник (18 февраля 2019 года) это вторая статья. Спасибо вам за вашу поддержку и чтение. На этой неделе (2019.2-с 18 по 2-22) содержание статьи указывает на следующие моменты, время обновления-среда, среда и пятница, вы можете обратить внимание на эту колонку, продолжая уделять внимание, спасибо за вашу поддержку.
1. Что такое Memcache? 2. Каковы характеристики Memcache? В-третьих, каков механизм управления памятью Memcache? 4. В чем разница между Memcached и Memcached? 5. Как управлять Memcache? 6. Как использовать Memcache для совместного использования сеансов? 7. Что такое Redis? 8. Как использовать Redis? 9. На какие проблемы следует обратить внимание при использовании Redis? 10. Новые дополнения: В чем разница между Redis и Memcache? 11. Добавлено: Как Redis достигает постоянства? 12. Memcache и Редис Частые экзаменационные вопросы
Содержание этой главы будет разделено на три статьи, чтобы объяснить весь блок. Первый в основном составляет от одного до шести, а второй – от семи до одиннадцати. (добавлено десять и одиннадцать) Третья глава посвящена двенадцатому пункту.
Часть следующего текста взята из Интервью с PHP-программистом, Написанного в Тестовой книге Книги, если они воспроизведены, пожалуйста, сохраните источник:
Redis-это система хранения ключевых значений. Подобно Memcached, он поддерживает относительно большее количество типов значений, включая строку (строка), список (связанный список), набор (набор), Набор (упорядоченный набор, упорядоченный набор) и хэш (тип хэша). Эти типы данных поддерживают push/pop, добавление/удаление, наборы пересечений, объединения и различий, а также более сложные операции, все из которых являются атомарными. Исходя из этого, Redis поддерживает сортировку различными способами. Как и Memcached, данные кэшируются в памяти для обеспечения эффективности. Разница в том, что Red периодически записывает обновленные данные на диск или записывает операцию модификации в дополнительный файл записи, и на этой основе реализуется синхронизация master-slave.
Появление Redis в значительной степени компенсирует нехватку хранилища ключей/значений, такого как Memcached, которое в некоторых случаях может играть очень хорошую роль дополнения к реляционным базам данных. Он предоставляет Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang и другие клиенты, которые очень удобны в использовании.
Redis поддерживает синхронизацию ведущего и ведомого устройств. Данные могут быть синхронизированы с основного сервера на любое количество подчиненных серверов, которые могут быть основным сервером, связанным с другими подчиненными серверами. Это позволяет Redis выполнять однослойную репликацию дерева. Инвентаризация может намеренно или непреднамеренно записывать данные. Поскольку механизм публикации/подписки реализован полностью, при синхронизации дерева в любом месте базы данных можно подписаться на канал и получить полную запись публикации сообщений с главного сервера. Синхронизация полезна для масштабируемости и избыточности данных операций чтения.
Пример использования метода set:
Ниже приводится краткое описание каждого метода использования. Конкретный метод использования может быть использован со ссылкой на примеры и написание на PHP.
1. Как использовать строковый тип
2. Использование типа хэша
3. Использование типа списка
4. Использование установленного типа
5. Способ использования отсортированного набора типов
Как и MySQL, Redis также сталкивается со многими проблемами при его использовании. Соответствующие методы и оптимизация значительно улучшат его производительность и качество обслуживания. Некоторые общие проблемы сводятся к следующему:
1. Прекратите использование клавиш * операции
Работа клавиш * замедлится. Поскольку временная сложность команды keys равна O (n), где n-количество возвращаемых ключей, видно, что сложность команды зависит от размера данных. Когда объем данных велик, во время выполнения этой операции никакая другая команда не может быть выполнена в экземпляре, что серьезно влияет на производительность. Вместо использования команды сканирования команда сканирования сканирует базу данных постепенно и итеративно.
2. Найдите причины снижения скорости Red is
Используйте команду “ИНФОРМАЦИЯ о состоянии команды”, чтобы просмотреть статистику всех команд, например, сколько раз команда была выполнена и сколько миллисекунд требуется для выполнения команды.
3. Используйте хэш-хранилище как можно больше
Режим хранения хэша значительно повысит эффективность работы.
4. Установка времени выживания ключевого значения
По возможности используйте ключевые тайм-ауты. Хорошим примером является хранение таких вещей, как временные ключи аутентификации. Когда вы идете, чтобы найти ключ авторизации — например, OAUTH, — вы обычно получаете тайм-аут. Таким образом, когда вы установите ключ, установите одинаковое время ожидания, Redis автоматически очистится для вас! ___________ Вместо использования КЛАВИШ * для обхода всех клавиш.
5. Для важных данных используйте обработку исключений
Если вы должны убедиться, что критические данные могут быть помещены в экземпляры Redis, используйте механизмы обработки исключений. Почти все клиенты редактирования используют стратегию “отправить-забыть”, поэтому часто необходимо учитывать, действительно ли ключ помещен в базу данных Redis. Добавление механизма обработки исключений является предварительным условием надежности программы.
6. Приложение с несколькими экземплярами
Всякий раз, когда это возможно, рабочая нагрузка нескольких экземпляров Redis распределяется. Кластеры Redis позволяют ключевым областям разделять части, содержащие шаблоны master/slave. Наличие нескольких экземпляров является важной гарантией обеспечения максимального использования ресурсов кластера и стабильности кластера.
Я сам организовал пьесу.” Как Redis реализует кластеризацию? “Обратите внимание на общедоступный номер:” Библиотека программирования Рюэйи “Ответ:” redis Я пришлю его вам.
(1) Структура данных: Memcache поддерживает только хранение значений ключей, Redis поддерживает больше типов данных, таких как значение ключа, хэш, список, набор, zset; (2) Многопоточность: Memcache поддерживает многопоточность, Redis поддерживает однопоточность, и Memcache лучше, чем Redis, в использовании процессора. (3) Сохраняемость: Memcache не поддерживает сохраняемость, Redis поддерживает сохраняемость; (4) Использование памяти: Memcache высокий, Redis низкий (выше, чем Memcache при использовании сжатия); (5) Стратегия истечения срока действия: Когда срок действия Memcache истечет, он не удалит кэш, что приведет к проблеме сбора данных в следующий раз. В Redis есть специальный поток для очистки кэшированных данных.
Redis-это база данных в памяти, которая поддерживает сохранение данных. Он может настроить Redis для периодической синхронизации обновленных данных на диск для обеспечения сохраняемости данных. Redis поддерживает две стратегии сохранения: RDB и AOF.
1. Сохраняемость RDB
Сохранение базы данных RDB означает, что моментальные снимки данных сохраняются в течение заданного интервала времени. По умолчанию для сохранения Redis используется база данных RDB.
База данных RDB работает путем разветвления подпроцесса, который записывает данные во временный файл базы данных RDB на диске, когда необходимо сохранить Redis. Когда подпроцесс завершает запись временных файлов, он заменяет исходную базу данных RDB, которая имеет преимущество копирования при записи.
Значение по умолчанию для сохранения базы данных RDB в файле Redis.conf равно:
In save 300 10 # 300 seconds, if more than 10 keys are modified, a snapshot is initiated.
Преимущества RDB:
Поскольку подход к сохранению базы данных RDB позволяет периодически делать моментальные снимки данных, база данных RDB хорошо подходит для аварийного восстановления. Например, настройте почасовую резервную копию или ежедневную резервную копию общего объема, чтобы упростить отслеживание данных и восстановление до различных версий.
Недостатки RDB:
(1) Легко потерять данные, поскольку они сохраняются только один раз в определенное время; например, если вы настроили 30-минутную резервную копию, но если сервер Redis выйдет из строя, вы можете потерять несколько минут данных и не выполнить резервное копирование. (2) При сохранении больших объемов данных возникнут проблемы с производительностью.
2. Стойкость к воздействию
ОФ: Сначала добавьте команду в конец журнала операций и сохраните все исторические операции.
Принцип A OF заключается в том, что каждая команда записи добавляется только для добавления. Функции сквозной записи. Когда кредит не удается перезапустить, он считывает файл AOF и “воспроизводит” его, чтобы восстановить состояние до повторного открытия.
Настройки Redis.conf для сохранения AOF:
Redis.conf appendonly yes # Opens full persistence Appndfsync always # Writes an AOF file every time a data modification occurs. Appndfsync everysec # is synchronized every second, which is the default policy of AOF.
Преимущества:
(1) Данные очень полные, и при восстановлении ошибок мало потерянных данных. (2) Исторические операции могут быть обработаны.
Недостатки ИЗ:
((1) При резервном копировании одного и того же набора данных размер файла AIF больше, чем у базы данных RDB. ((2) Если используется стратегия fsync, скорость AIF может быть ниже, чем у базы данных RDB.
3. Какой Redis лучше подходит для настойчивости?
Поскольку Redis поддерживает политики сохранения как RDB, так и AOF, их можно настроить для обеспечения безопасности резервного копирования данных. Когда Redis перезапустится, AOF будет предпочтительнее восстанавливать данные, чтобы обеспечить наименьшую потерю данных.
Если вы хотите выбрать то или иное, вы можете выбрать в соответствии с вашим собственным бизнесом:
((1) Если требования к потере данных высоки, можно выбрать стратегию сохранения. ((2) Каждая команда, выполняемая в Redis, будет добавлена на диск, что приведет к снижению производительности Redis. Если учитывать производительность Redis, можно выбрать стратегию сохранения базы данных. (3) Учитывая ситуацию аварийного восстановления данных, мы можем выбрать стратегию сохранения базы данных.
Вот еще один распространенный вопрос о Redis: как Redis реализует кластеризацию кэша?
Сосредоточьтесь на общедоступном номере: ” Библиотека программирования Рюэйи “Ответ:” redis Я отправлю его вам.
Примечание: Memcache и Redis (3) будут обновлены в пятницу (2019.2-22).
Выше приведены выдержки из Интервью с PHP – программистом, Написанного в Тестовой книге Книги, книга была продана в Тяньмао, Цзиндуне, Дангданге и других платформах электронной коммерции.
Дополнительные знания о собеседовании и экзаменационные вопросы, связанные с PHP, могут быть связаны с приобретением общедоступного номера: Библиотека программирования Ryueyi
Любые вопросы или предложения в этой статье можно оставить в сообщении, я буду продолжать совершенствовать стремление к конечному, спасибо за вашу поддержку.