Лучше использовать файл TXT, чтобы получить текущее значение счетчика вместо базы данных? - PullRequest
0 голосов
/ 10 июня 2019

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

Но поскольку на веб-сайте одновременно проживает около 4000 одновременно работающих пользователей, подключение к базе данных сказывается на сервере и приводит к тайм-аутам.

Если я загружу текущий счет из файла txt, а затем запишу его обратно в тот же файл, будет ли он лучше?

Или я должен использовать переменную приложения для хранения результатов?

Я пытался использовать кеш, но он не извлекает последнее значение. Оптимизация базы данных также не работает из-за количества пользователей.

Я ищу лучший способ показать и увеличить счетчик без использования базы данных.

1 Ответ

0 голосов
/ 10 июня 2019

База данных будет работать лучше.База данных NoSQL идеально подходит для вашего случая использования.Вы можете использовать Redis, он хранит данные в памяти (RAM), что означает, что операции чтения и записи будут выполняться намного быстрее, чем другие базы данных, работающие на вторичном диске (Hard Drive).

Redis сам поддерживает структуру данныхувеличить значения, используя команду INCR.INCR увеличивает число, хранящееся в ключе, на единицу.Если ключ не существует, перед выполнением операции он устанавливается на 0.

Например, ваш ключ, который содержит значение, равен my_counter.Вы можете поиграть с redis-cli следующим образом.

redis>  SET my_counter "10"

"OK"

redis>  INCR my_counter

(integer) 11

redis>  GET my_counter

"11"

К счастью, есть клиент Redis для Laravel.Вы можете прочитать здесь:

https://laravel.com/docs/5.8/redis

Удачи:)

Редактировать 1:

Если большое количество пользователей вызываетДля замедления работы сервера у вас есть другие серверные и архитектурные параметры, которые можно установить вместе с новой базой данных.Такие как горизонтальное и вертикальное масштабирование.


Ссылки:

https://github.com/phpredis/phpredis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...