Intereting Posts
Intermittent simplexml_load_file (): предупреждение ввода-вывода на локальном сайте Joomla Как загрузить изображение из приложения Android на веб-сервер в определенную папку Regex для двоеточия в теге xml при разборе парсинга с помощью php и simplexml_load_string Как предотвратить диалоговое окно «Подтверждение повторной формы формы»? В PHP, как я могу добавить нумерованную цифровую строку и сохранить нулевое дополнение? Как обнаружить предварительную выборку из браузера в PHP? Капистрано: HowTo развертывать базу данных MySQL для PHP-приложения? Пометка WMD и серверная сторона Lavavel 5.2.36 МетодNotAllowedHttpException в строке RouteCollection.php 218: PHP получает начальную и конечную дату недели по недельному номеру Как действительно включить php-fpm с apache? Как заменить несколько значений в php Слияние двух mp3-плееров Динамически измененные файлы в PHP. Иногда изменения не отображаются в include (), ftp_put () Mysql Query с двумя таблицами php

Использование redis в качестве кеша для базы данных mysql

Мне нужно создать решение, используя php, с базой данных mysql с большим количеством данных. У моей программы будет много заявок, я думаю, что если я буду работать с кешем и базой OO, у меня будет хороший результат, но у меня нет опыта.

Я думаю, например, если я кэширую информацию, сохраненную в mysql в базе данных redis, производительность будет улучшена, но я не знаю, хорошая ли это идея, поэтому я хотел бы, чтобы кто-то помог мне выбрать.

Извините, если мой английский не очень хорош, я из Бразилии.

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

  1. Запросы базы данных кэша, то есть – выбранные запросы и их результаты будут храниться в redis для быстрого доступа в течение заданного времени или до очистки кеша (полезно после обновления базы данных). В этом случае вы можете использовать встроенное кэширование запросов mysql, оно будет проще, чем использование дополнительного хранилища ключей, или вы можете переопределить интеграцию базы данных по умолчанию с вашим собственным классом с использованием кеша (например, http://pythonhosted.org / johnny-cache / ).
  2. Пользовательское кэширование, которое создает ваши собственные структуры для хранения в кеше и периодически или вручную заполняет их данными, полученными из базы данных. Он более гибкий и потенциально более мощный, поскольку вы можете использовать встроенные функции redis, такие как списки или отсортированные наборы, которые значительно сокращают накладные расходы. Для этого требуется немного больше кодирования, но обычно он предлагает лучшие результаты, поскольку он более настраивается. Хорошим примером является сохранение лучших статей в виде redis-списка идентификаторов, а затем доступ к сериализованным статьям (-ам) с заданным идентификатором также из redis. Вы можете сохранить эту статью ненормализованной – т.е. Сериализованный объект может содержать идентификатор пользователя, а также имя пользователя, чтобы вы могли минимизировать накладные расходы дополнительных запросов.

Вы сами решаете, какой подход взять, я лично почти всегда иду с подходом номер два. Но, конечно, все зависит от того, сколько времени у вас есть и что должно делать приложение – вы можете также начать с кэширования запросов mysql, и если результаты не будут достаточно хорошими, перейдите к redis и пользовательскому кэшированию.