Чтение этого краткого примера использования memcached с PHP, мне было интересно, как memcached знает, когда запрос данных должен фактически поступать из базы данных, а не из кеша.
Это не так, ваш код делает это. В большинстве случаев вы будете делать что-то вроде этого:
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
Это не так.Все сводится к вашей стратегии кэширования.Это относится ко всем формам кэша, компромисс между получением последних данных и быстрым получением некоторых данных.Если вам нужно для обновления данных, аннулируйте (удалите) кеш при обновлении оригинала.Если производительность важнее, пусть срок действия кэша истечет, и в этот момент он будет обновлен.Или что-то среднее.Это зависит от ваших ограничений и целей.
Я думаю, вам нужно запрограммировать эту логику.
например. Когда вы обновляете базу данных, обновите значение memcached, связанное с этим ключом, или сделайте так, чтобы срок действия этого ключа истек.