Как работает memcached, когда данные изменились? - PullRequest
1 голос
/ 21 февраля 2012

Чтение этого краткого примера использования memcached с PHP, мне было интересно, как memcached знает, когда запрос данных должен фактически поступать из базы данных, а не из кеша.

Ответы [ 3 ]

3 голосов
/ 21 февраля 2012

Это не так, ваш код делает это. В большинстве случаев вы будете делать что-то вроде этого:

key = /* build cache key somehow */
data = memcache.get(key)
if data is null:
  data = /* read data from database */
  cached.set(key, data)

// now you can use the data
3 голосов
/ 21 февраля 2012

Это не так.Все сводится к вашей стратегии кэширования.Это относится ко всем формам кэша, компромисс между получением последних данных и быстрым получением некоторых данных.Если вам нужно для обновления данных, аннулируйте (удалите) кеш при обновлении оригинала.Если производительность важнее, пусть срок действия кэша истечет, и в этот момент он будет обновлен.Или что-то среднее.Это зависит от ваших ограничений и целей.

1 голос
/ 21 февраля 2012

Я думаю, вам нужно запрограммировать эту логику.

например. Когда вы обновляете базу данных, обновите значение memcached, связанное с этим ключом, или сделайте так, чтобы срок действия этого ключа истек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...