2013-07-04 4 views
1

В настоящее время у нас есть приложение, размещенное в Google App Engine. Биллинг включен для этого приложения. Это приложение все еще находится в режиме бета-тестирования, которое мы используем для целей тестирования. У нас есть логика обслуживания данных из Memcache, если они есть, если нет, то мы получаем данные из хранилища данных и обновляем memcache и обслуживаем данные. Мы сталкиваемся с необычным поведением, связанным с Memcache. Данные, связанные с некоторыми ключами в Memcache, теряются через несколько минут после установки. Мы попытались установить время истечения срока действия ключей в memcache, даже если это не работает. Поскольку данные теряются из memcache, данные снова появляются из хранилища данных, что увеличивает биллинг для нашего приложения.Система Memcache - часто набирает ключи

В настоящее время почти 80% выставления счетов связано с чтением хранилища данных. Чтение хранилища данных велико, так как memcache работает не так эффективно, как должно быть. Любое понимание того, почему мы столкнулись с этой проблемой, было бы очень полезно.

Просто FYI, у нас есть около 75000 ключей в memcache с общим размером 100 МБ данных. Наша структура требует хранения такого большого количества ключей в memcache, что, я думаю, не должно быть проблемой.

Наша заявка на 10 пользователей, а сумма выставления счета в день составляет около 40 долларов США.

Спасибо, Криш

ответ

0

К сожалению Memcache будут выселять ключи, как и когда это требуется. Установка времени истечения означает, что элемент будет находиться в memcache для до времени истечения срока действия. Взгляните на docs относительно выселения.

Кроме того, взгляните на this, чтобы узнать больше о проблемах с memcache.

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

+1

В настоящее время у нас есть специальная поддержка Memcache версии 1.8.2 для Google App Engine. Мы можем предпочесть, что это решает нашу проблему. –

Смежные вопросы