- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Можно ли через nginx реализовать следующее:
Страница /page.php?action=news
Контент:
пользователю1 -> контент1
пользователю2 -> контент2
пользователю3 -> контент3
...
?
Как мне представляется этого сделать нельзя, потому как я не представляю как nginx узнает права пользователя при обращении к скрипту, все таки права - уровень php.
Потому возникает следующий вопрос:
Такая реализация кеширования корректна? То есть для каждой страницы на проекте и для каждого пользователя в memcache создается свой ключ? Получается если на проекте 5000 пользователей и 500 скриптов, то будет храниться 2.5М ключей со значениями (не просто значения, а HTML)!
Я в принципе могу разделить пользователей по уровню доступа (админ., редактор, авторизированный, не авторизированный и т.д.) и создавать кеши именно по уровням. Но мне все же интересна мощность memcache.
По умолчанию в memcache стоит какое то ограничение в 64М, это размер выделенной памяти в оперативке? Где тогда будут храниться мои 2,5М записей?)
В общем вопрос в том, как правильно/оптимально организовать кешинирование.
Всем спасибо!
может хтмл все таки генерить, а хранить данные для его генерации? :-)
затраты по генерации хтмл такто ничтожные ...
Вот мне и интересно как лучше...
Хорошо, если хранить только данные, то лучше для каждого типа пользователя и для каждого пользователя конкретно?
Как всё жутко у вас :))
Для начала поймите, что $memcache->get() функция выполняет ЗАПРОС! Зачем вы на получение данных тут выполняете 2 запроса?
Во-вторых, как вам правильно сказали - у вас будет переизбыток данных. Не стоит прямо всё хранить в мемкеше - храните только те блоки, которые используются часто. Вам нужно просто хранить для каждой группы пользователей не большой кусочек данных, который будет показываться на каждому странице, на сколько я понял.
У memcache нет ограничения на размер отведенной ему оперативной памяти. 64M - скорее всего - значение по умолчанию (сам не помню какое там умолчание, но похоже на правду).
Учтите, что вам (возможно) прийдется переносить всё это дело на хостинг. У вас-то дома может быть 4 Гб оперативы, а на shared-хостинге, боюсь, у вас будет несколько десятков мегабайт только.
Еще совет: суть должна быть в том, чтобы снизить нагрузку на базу при помощи кеширования в мемкеш наиболее часто показываемых блоков или данных. По сути для админов например, можно мемкеш и не использовать, а всегда брать только актуальные данные с базы - ну и что что для админа 20 запросов выполнится - ерунда какая.
So1 добавил 15.02.2011 в 08:06
Ах да... Забыл совсем добавить-то. Тут был еще вопрос про производительность memcache. Избегайте более 40.000 запросов в секунду. По сути в идеале у вас должно быть не более 20.000.
С этим когда-то столкнулся facebook. Но они сами переточили memcache под себя, чтобы он мог "держать" более 100.000 запросов.
Спасибо за расширенный ответ, но хочется еще больше информации :)
Про memcache:
1. вы сказали избегать более 40 000 запросов / сек. спасибо, это важная информация!
2. про память: все данные в memcache хранятся в памяти, то есть если у меня на сервере 12Г оперативной памяти, то я могу выделить 5Г на memcache и это будет нормально?
3. про масштабируемость: в memcache можно подключать несколько серверов, через запятую в конфиге. вот допустим я подключил 3 сервера, на них будет храниться одинаковая информация или создаться единое общее пространство, использующее ресурсы 3х серверов?
Про кеширование:
у меня много ресурсоемких операций (выборка данных + обработка данных), вот я решил использовать для этого memcache, но выяснилось что я не могу хранить в нем все что хочу.
Может быть тогда имеет смысл использовать сериализацию данных и ее хранение в файлах?