/ / Використання кешу сторінки або бази даних для декількох викликів ajax у Codeigniter - php, ajax, codeigniter, caching, codeigniter-3

Використання кешу сторінки або бази даних для декількох дзвінків ajax в Codeigniter - php, ajax, codeigniter, кешування, codeigniter-3

Я будую програму / гру в Codeigniter 3. Є один додаток, що працює на проектор перед класом, а інші користувачі можуть грати через там мобільний. Програмі потрібно відправити json гравцям. Це має бути зроблено без будь-яких послуг, таких як Pusher або socket.io, тому що я не можу нічого встановити на сервері, і немає ніякого бюджету на зовнішню службу.

Таким чином, у мене є деякі Javascript працює на користувачів:

setInterval(function(){
$.getJSON( "ajax/data/json", { "id": id }, function( data ){
// Do stuff with the data if its available
});
}, 1000);

У додатку у мене є щось на зразок цього:

public function json()
{
$this->load->model("data_model");
$data = $this->data_model->get_json($this->input->get("id"));
echo json_encode($data);
}

Моя єдина турбота - гра на багатьоходночасно. Чи можу я використовувати Codeigniters "Кешування сторінок" або "Cashing баз даних", щоб запобігти надто багато запитів до бази даних, і який найкращий спосіб здійснити це? Чи є інше рішення, щоб запобігти цьому?

Відповіді:

1 для відповіді № 1

Я думаю, що це досить важке питання, тому що існує багато можливостей для вирішення цієї проблеми

На мою думку, найбільшою швидкістю річ євикористання сервера зберігання ключів / значень як "між" сервером (db -> key / value storage -> output) Я встановив REDIS практично на всі програми CI, тому що це так швидко

якщо ви маєте доступ до свого сервера, настійно рекомендую встановити службу, подібну до redis.

Наприклад, я швидко подивився:

На локальній системі I5-2500 з 16 Гб Ram я можу виконати 10.000 запитів приблизно за 1 секунду

І особливо в налаштуваннях ajax ви повинні бути обережні - тому що ваш запит не повинен тривати довше 100 мс (приблизно!)

Нижче наведено кілька посилань для створення зображення:

PHPredis на Github

Документація Redis

якщо ви не маєте доступу до вашого сервера, спробуйте використати кешування на основі файлів. Для отримання додаткової інформації подивіться тут (Документація CI про кешування)