![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не надо из мемкеша ничего выбрасывать, нужно изменять одновременно с данными в базе. А актуальность и синхронизация данных будет обеспечена прямыми руками. Если оные не есть прямые, тут ничего уж не поделаешь.
|
|
|||||
|
2mikhailk: Да, что работа серьезная - осознаю! Хочется на этом получить достойный опыт. За модель кеширования - спасибо! Есть над чем подумать!
2etc: Будьте добры - дискуссировать объективней? Я понимаю что у вас руки прямые, но я здесь с вами не руками меряюсь! Задача (на данный момент) одна - найти достойное решение обеспечивающее стабильную работу БД при превышении 850 кол-ва коннектов! Последний раз редактировалось ERrorMAKros; 15.07.2010 в 20:58. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Теперь по логике работы. Допустим, в кэше хранится профиль фермы пользователя в виде объекта. Пользователь купил ослика. От клиента поступил запрос на покупку ослика, по итогам которого сервер отдал клиенту обновленную информацию - добавленное жывотное, обновленная сумма на счету, обновленный рейтинг, клиент получил эти данные и у себя их учел. Параллельно с отправкой данных клиенту мы должны обеспечить целостность данных. Я сбрасываю профиль фермы из кэша, он будет автоматически заполнен при следующем обращении к ней методом, который указан в первом абзаце. Имею незначительную избыточность в вычислениях, но простоту и надежность. В Вашей реализации Вы, на сколько я понимаю, обновляете объект профиля фермы и записываете его заново. Т.е., Вы немного экономите на вычислениях, но имеете более сложный сервер. Вопрос выбора. Кстати, я тут подумал, что мне пришлось пойти своим путем и по вполне объективным причинам. Иногда есть потребность одновременно внести изменения, скажем, в тысячу-другу профилей ферм. Например, в стойла вернулись арендованные на сутки ослики. Пересчитывать все эти профили одной задачей - достаточно трудоемко. Проще их сбросить, чтобы потом они постепенно обновились в кэше по мере того, как они будут запрошены. Последний раз редактировалось mikhailk; 15.07.2010 в 21:14. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
mikhailk, о том, что надо проверять, никто не спорит. Но я предпочту снизить нагрузку на базу.
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
вставлю тоже пару слов.
Лично на мой взгляд кеширование, этот Memcache не нужная и не удобная штуковина вообще. Кто-то ещё ставит базу ключ=значение, да тот же MemcacheDB. Сидят там пару процентов производительности поднимают. Ломать себе мозг, как отыграть немного производительности у сервера, в наше время это лишние проблемы. Ещё можно программный код ужимать, а то у нас винчестеры 250кб. Да максимум поставил сверху Апачи Nginx, поднастроил БД, оптимизировал запросы и оптимизировал таблицы. Ну если проект большой, сразу арендовал один сервер. За 5 000 в месяц можно нормальный найти. Стало мало места, вынес базу данных на отдельный сервер. Дальше вынес все изображения на отдельный. Можно вообще базу по серверам отмасштабировать. Если вообще всё плохо то настроил "Ферму" на Nginx, или разнёс проект по модульно. Да 100 вариантов есть. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
У нас без мемкеша сервер загибается за 10 минут. Это при том, что запросы примитивны.
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
У Вас проекты такого плана с которыми я к сожалению не работал.
Там 25 000 нубов в TimeZero режет крысу, или 10 000 человек в destiny-online передаёт свои координаты местоположения. Наверно у меня проекты, где люди не так часто запросами кидаются. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Я так понимаю, если мемкэш обеспечивает прирост в 2% производительности, то это очень интересное и необычное использование мемкэша.
membrilius, автор топика социальную сеть сделать собирается. Вам известны движки социальных сетей без кэширования? |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
А мы вот apc выбрали все-таки, он удобнее.
Вообще всю статику в любом проекте, где предполагается хоть какая-то более ли менее нагрузка надо кешировать данные, собирать в байт-код пхп, картинки отдавать на всякие nginxы и т.п. Последний раз редактировалось Сайлас; 15.07.2010 в 23:13. |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
mikhailk, я просто высказал своё мнение.. я не считаю что мемкэш это минус.
Просто если в конторе работает допустим 20 программистов... да было бы хорошо, если бы они на достойном уровне знали PHP и JavaScript. Вообще моя статистика из 100 человек на собеседование, только 10 видят PHP, JavaScript, HTML глазами хакера. Не в ту степь я пошёл ) Я читал много Ваших постов, Вы всеми руками за производительность - ценный сотрудник. А я человек которому проще вкладывать деньги в железо. И за такие понятия как Шардинг, Репликация (хоть это и ужасно, но иногда выручает), Партиционирование, Балансировка, Nginx фермы. Масштабировать я люблю ) |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|