This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Работа с бд

johndoe

Активный участник
10 Май 2025
99
34
30
Реакции: aspidemon

aspidemon

Начинающий специалист
26 Сен 2022
178
57
85
Согласен, но в случае краша консоли сервера, все твои данные инвентаря теряются, а в случае с стором на клиенте - данные могут изменить и получаются дюпы
Редиска же сохраняет данные на диске в виде файлов на случай краша и периодически их там обновляет

К слову, я не говорю про кеширование аккаунтов или персонажей, сохранять например информацию по предметам инвентаря очень удобно, редис очень сильно поможет в таком случае, еще как пример можно отнести данные бизнесов и прочее
 
Реакции: Touch

🐝 ubees

Специалист
11 Фев 2023
560
86
79
41
Реакции: aspidemon

johndoe

Активный участник
10 Май 2025
99
34
30
Редиска же сохраняет данные на диске в виде файлов

Друг, редис почему такой быстрый и ахуенный? Потому что он записывает ключи не в физическую память, а в ОЗУ. Отсюда и скорость) БДшки все пишут в условные файлы на жёсткий диск, редис - в ОЗУ
 

aspidemon

Начинающий специалист
26 Сен 2022
178
57
85
Да, но в нем есть возможность делать backup информации на диск, если б читал, что я дальше писал, а не вырывал из контекста, то понял бы

 

aspidemon

Начинающий специалист
26 Сен 2022
178
57
85
Можешь чекнуть видосик, там тебе все нормально обьяснят -
P.S. Специально нашел для тебя!
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
733
335
161
30
Что за редиска?
Чтобы контекст понимать)
Redis
На первых парах тебе это не обязательно изучать.
Не распыляй внимание. Почитай про SQL. Лучше с практикой.
Запусти чистый сервачек(рейджа, раз мы тут), через команды сервера сделай авторизацию на сервере(самую элементарную).
Авторизация звучит наверное грозно для тебя, но на самом деле все просто.
При заходе игрока на сервер пиши ему в чат(что-то типо - "Для авторизации введите /auth login password")
В чат вводишь данные на стороне сервера обрабатываешь.
По сути сервер рейджа это приложение на nodeJS(не только, есть и на C# но не будем отвлекаться) поизучаешь заодно и его(js);
Практика ключ к познанию.
 
Реакции: aspidemon

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,361
2,141
208
36
базу говоришь тоже немного в прикеке с монго-идей
звучит как омегалул

редиска еще очередями управлять кайф.
 
Реакции: johndoe

akudinov28

Старожил
24 Фев 2021
439
210
106

По поводу потери данных в случае краша - автосохранение в базу коллекции раз в n минут. В случае краша у тебя откатится состояние за последние, например, 5 минут. Не страшно. Все крупные проекты именно так и работают.

По поводу дюпа - это так не работает. Ну задублирует он себе картинки в инвентаре, и что? При попытке взять предмет в руки, например, у тебя все равно должен идти запрос на сервер: есть ли предмет у игрока, может ли он взять в руки его именно здесь и сейчас и т.д. Сервер - единственный источник истины. Дюп не прокатит.
 

aspidemon

Начинающий специалист
26 Сен 2022
178
57
85
Ну, вообще-то это NoSQL база данных, просто её используют для кэша в основном, но она спокойно может быть основной базой данных
 

aspidemon

Начинающий специалист
26 Сен 2022
178
57
85
Когда у тебя 500 онлайна - запись такого количества данных через n время приведет к отказу бд, в пример могу привести мод Diamond, там такая же схема использовалась, много проблем из-за этого

Дюпы реальны, в особенности если учитывать, что он пишет, о том, что он хочет сохранить инвентарь на стороне клиента "что б грузилось быстрее" (Читай внимательнее, там буквально так написано):


P.S. В любом случае, редиска будет очень полезна как для SQL так и для NoSQL
 

johndoe

Активный участник
10 Май 2025
99
34
30

Ну так и трактор это по факту тоже техника. Но по городу кататься на работу на нём и по магазинам будет не очень комфортно) Мы с тобой как будто о разных вещах говорим.

Если прям пиздец как банально спуститься, то redis по факту жсовский Map, где есть ключ - значение. Использовать её как хранилище для сервера - шиза, хоть и будет работать (я не спорю), но зачем, а главное нахуя использовать его как основное хранилище
 

johndoe

Активный участник
10 Май 2025
99
34
30

Брат, если ты перед тем, как ЧТО ЛИБО сделать от команды клиента не валидируешь на сервере - мои соболезнования. Есть ебейшее и золотое правило: НИКОГДА НЕ ВЕРЬ КЛИЕНТУ.

Хочет переместить айтем - делаешь внутренние проверки. Ты не знаешь что вызвал это действие: обычный игрок или Вася из 2Г класса, скачавший две минуты назад экзекьютер

Я видел кейсы когда инвентарь был онли на клиентской части, так и ебучий даймонд у которого очень много логики было на клиенте. Это не говорит о том, что "вот, я видел такой кейс, это хуево, идем хранить данные в редис". Это говорит о том, что даймонд писал ебанат, который почему то решил что инъектнуться в клиент очень сложно.
 

Similar threads