Как реализовать memcached с использованием базы данных? - PullRequest
2 голосов
/ 10 сентября 2009

Насколько мне известно, memcached работает в памяти и не имеет постоянного хранилища резервных копий.

В настоящее время моя команда еще не готова использовать memcached.

Итак, я планирую написать простую альтернативу, поддерживаемую базой данных.

Мой вопрос в значительной степени похож на этот вопрос

Одновременные входы в веб-ферму

Мое веб-приложение имеет четкие точки входа (входа) и выхода (выхода).

План:

  1. При входе в систему я добавлю идентификатор пользователя в таблицу.
  2. При выходе из системы я удалю строку, содержащую идентификатор пользователя.

Вопросы:

Есть ли хорошо используемый метод для тайм-аута строки в Mysql? Под методом я подразумеваю лучшую практику. По истечении времени ожидания строка удаляется.

Ответы [ 2 ]

3 голосов
/ 10 сентября 2009

уже есть вариант для memcache, который является постоянным:

http://memcachedb.org/

также проверьте кабинет Токио: http://1978th.net/, который предположительно намного быстрее

R

EDIT: перечитываю твой вопрос. Позвольте мне добавить это: способ реализовать timetolive, это просто добавить столбец timestamp в вашу базу данных. В следующий раз, когда вы получите кэшированный элемент, проверьте, не слишком ли старая временная метка, и удалите запись в это время, получите новую копию и поместите ее обратно в кэш БД с текущей временной меткой

Так же это делает memcache

1 голос
/ 10 сентября 2009

Не уверен, что вы подразумеваете под

Есть ли хорошо используемый метод для тайм-аута? строка в Mysql?

мы используем Memcache как средство для кэширования на основе объектов, для него можно установить значение timetolive

например;

MemcachedClient c= // get memcachedclient reference...

      if (c != null) {
            c.set(key, timeToLiveInSeconds, objectToCache);
        }

После определенного периода времени он будет удален автоматически

...