Каков наилучший способ синхронизации данных кэша Redis с БД - PullRequest
0 голосов
/ 09 мая 2018

Я использую Redis исключительно в качестве сервера кэширования, поэтому RDB и AOF отключены, так как у меня уже есть БД, и наличие двух слоев, которые выполняют одно и то же, является излишним.

Хотя эта настройка отлично работает, когда БД является единственным источником правды, мой вопрос больше о том, что происходит, когда вы используете Redis для отслеживания таких вещей, как game scores, pages views, analytics from a webhook, etc..

На данный момент у нас нет постоянных данных для Redis, это означает, что в случае сбоя / перезапуска сервера все эти данные исчезнут.

Итак, как лучше синхронизировать БД с данными Redis?

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

  • возможно, вместо того, чтобы прерывать Redis каждую минуту из-за его однопоточного характера, и чтобы избежать любых пропусков данных, мы можем добавить данные в очередь, которая запускается, когда размер = 50 или что-то, что затем обновляет БД

Я использую laravel, поэтому любые примеры, следующие за его экосистемой, приветствуются, но также приветствуются любые мысли.

...