Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Кэширование при работе с Mysql

Метки:
Теги Теги
datacache mysql spigot

Milki_way

Активный участник
Пользователь
Баллы
76
Добрый вечер. Возник вопрос об правильной работе плагина с Mysql

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

Если я подключаю базу к плагину, то получается мне нужно делать асинхронные запросы для получения данных.
Но если данные мне будут нужны при каждом движении, ударе, или любых других событиях которые вызываются очень часто, мне нужно создавать кэш прослойку между взаимодействием, и работать с транзакциями?
Да.
Если данных немного - просто загружай их при входе игрока и сохраняй при выходе.
 
Да.
Если данных немного - просто загружай их при входе игрока и сохраняй при выходе.
Почему многие плагины сохраняют при выходе? Разве не нужно обновлять данные в базе при любых изменениях, а создавать кеш только для быстрого "селекта"
 
Начислил баланс игроку, он перезашел, потом купил предмет, потом сервер упал, он заходит, а на балансе как были деньги, так и остались
 
Начислил баланс игроку, он перезашел, потом купил предмет, потом сервер упал, он заходит, а на балансе как были деньги, так и остались
Если ты плагин на деньги пишешь - да, надо постоянно баланс обновлять. Просто в большей части плагинов нет таких данных, из-за которых экономика пойдёт в расколбас при краше (если игрок получит лишний кит старт - ничего не случится)
 
Если ты плагин на деньги пишешь - да, надо постоянно баланс обновлять. Просто в большей части плагинов нет таких данных, из-за которых экономика пойдёт в расколбас при краше (если игрок получит лишний кит старт - ничего не случится)
Есть какой то нормальный бесплатный плагин на валюты с поддержкой Mysql?
Либо нет поддержки MYSQL, либо кривой, либо без API
 
Почему многие плагины сохраняют при выходе? Разве не нужно обновлять данные в базе при любых изменениях, а создавать кеш только для быстрого "селекта"
Сама игра так же делает с файлами игроков, в этом нет ничего необычного.
 
Почему многие плагины сохраняют при выходе? Разве не нужно обновлять данные в базе при любых изменениях, а создавать кеш только для быстрого "селекта"
Если сервер отвалится без сохранения ты получишь обратную проблему, списания денег без получения покупки. Собственно потому плагины и сейвят инфу игрока в файл на выходе игрока, что бы все данные игрока вместе засейвить.
 
Если сервер отвалится без сохранения ты получишь обратную проблему, списания денег без получения покупки. Собственно потому плагины и сейвят инфу игрока в файл на выходе игрока, что бы все данные игрока вместе засейвить.
Кстати да, не подумал об этом. Тогда для инвентарей нужен тоже mysql, либо для плагинов сохранение инфы при выходе.
 
Можно в оперативку самого же плагина, можно в Redis. Что-то временно-персистентное даже после рестарта сервера - в файлах. Последнее лучше избегать, но в редких кейсах может быть применимо, чтобы только не дергать базу.

Но даже для последнего лучше Redis подойдет. Только при полном ребуте машины и он сбросится по идее. У Redis есть персистентный модуль, но не работал с ним, не могу что-то по нему сказать
 
Можно в оперативку самого же плагина, можно в Redis. Что-то временно-персистентное даже после рестарта сервера - в файлах. Последнее лучше избегать, но в редких кейсах может быть применимо, чтобы только не дергать базу.

Но даже для последнего лучше Redis подойдет. Только при полном ребуте машины и он сбросится по идее. У Redis есть персистентный модуль, но не работал с ним, не могу что-то по нему сказать
Redis вы имеете ввиду как кэш? У меня не такая большая и сложная база что бы подключать реддис, я выбрал простое кеширование в кэш классе.
 

Поделиться этой страницей

Назад
Верх