2010-11-03 2 views
2

У меня очень мало данных (~ 200 байт), которые я получаю из базы данных очень часто. Скорость записи невелика.с использованием memcached для очень маленьких данных, хорошая идея?

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

Если это имеет значение, я запускаю это на GAE, используя python. Данные, о которых идет речь, могут быть легко (де) сериализованы как json.

+0

Здравствуйте, конечно! всегда лучше использовать memcache с хранилищем данных: см. идеальный шаблон: http://goo.gl/WUDrx – sahid

ответ

4

Memcache хорошо подходит для этого - чтение из хранилища намного дороже, чем чтение из memcache. Это особенно справедливо для небольших объемов данных, для которых стоимость извлечения преобладает задержка в хранилище данных.

Если ваше приложение получает достаточное количество запросов, которые, как правило, остаются в живых ненадолго, вы можете пойти еще на один шаг и использовать App Caching, чтобы в значительной степени избежать memcache. (В основном, кешируйте значение в глобальной переменной, а также кеш приложения, время, в течение которого последнее значение обновлялось. Укажите аксессуар для значения, которое извлекает последнее из memcache/db, если оно не было обновлено за X минут). Memcache довольно дешев, хотя, поэтому эта дополнительная работа может иметь смысл, если вы довольно часто обращаетесь к этой переменной.

+2

Memcache дешево, но переменные экземпляра на порядок быстрее. Во-вторых, предлагаю использовать их, если это возможно, хотя я бы пошел прямо в хранилище данных, если он устарел, вместо того, чтобы иметь три уровня хранения. –

-2

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

+0

Похож на ужасную идею. –

+0

@Null Pointer: почему? – liori

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