Вопрос по поводу memcache & php

Discussion in 'PHP' started by Kruzak, 29 Mar 2013.

  1. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    С memcache еще не работал, пока не полностью понимаю суть.

    Допустим есть страница вывода информации о пользователе: ник, email, дата рождения и т.д.

    Делаем запрос, проверяем есть ли кеш данных этого пользователя - если нету то делаем запрос в sql и кешируем.

    Далее этот пользователь редактирует свой профиль - изменяет email например

    теперь вопрос, при следующем запросе к скрипту вывода профиля memcache выведет старый кеш или старый кеш уже будет не актуален т.к. пользователь изменил профиль?
    вобщем memcache умеет определять актуальность кеша?
     
  2. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    При изменении информации - перезаписывай кэш.
     
  3. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Вообще кеш такая штука на которую нельзя опираться.
    Нельзя писать код использующий кеш для хранения данных.

    Поэтому при изменении нужно не перезаписывать кеш, а удалять его.

    Алгоритм

    Запрос данных:
    1 Если данные есть в кеше - использовать данные из кеша
    2 Если данных нет в кеше - выполнить запрос к бд - записать данные в кеш - вернуть данные

    Изменение данных:
    1. Изменить запись
    2. Удалить запись из кеша

    При таком подходе в кеше будет актуальная информация + в кеше не будет храниться инфа, о которой и не спрашивали.
     
    _________________________