Spec-Zone .ru
спецификации, руководства, описания, API
|
Интерфейс к memcached поддерживает следующие методы для хранения и получения информации в кэше, и они являются непротиворечивыми через все различные API, хотя язык определенная механика мог бы отличаться:
get(
:
Получает информацию от кэша. Возвращает значение, связанное с ключом, если указанный ключ существует.
Возвраты key
)NULL
, nil
, undefined
,
или самый близкий эквивалент на соответствующем языке, если указанный ключ не существует.
set(
: Устанавливает элемент, связанный с ключом в
кэше к указанному значению. Отметьте, что это или обновляет существующий элемент, если ключ уже
существует, или добавляет новую пару ключ/значение, если ключ не существует. Если время истечения
определяется, то элемент истекает (и удаляется), когда время истечения достигается. Время определяется в
секундах, и тратится в качестве относительного времени, если значение составляет меньше чем 30 дней
(30*24*60*60), или абсолютное время (эпоха) если больше чем это значение. key
, , value
, [, expiry
])
add(
: Добавляют значение ключа и присваиваемое
значение к кэшу, если указанный ключ уже не существует. key
, , value
, [, expiry
])
replace(
: Заменяет элемент, связанный указанным key
, , value
, [, expiry
])key
, только если ключ уже существует. Новое значение дается value
параметр.
delete(
: Удаляет key
, [, time
])key
и его
связанный элемент от кэша. Если Вы предоставляете a time
, тогда добавляя
другой элемент с указанным key
блокируется в течение установленного
периода.
incr(
: Постепенно увеличивает элемент, связанный с
key
, [, value
])key
одним или дополнительным value
.
decr(
: Постепенно уменьшает элемент, связанный с
key
, [, value
])key
одним или дополнительным value
.
flush_all
: Лишает законной силы (или истекает), все
текущие элементы в кэше. Технически они все еще существуют (они не удаляются), но они тихо уничтожаются
в следующий раз, когда Вы пытаетесь получить доступ к ним.
Во всех реализациях, больше всего или всех этих функциях дублируются через соответствующий интерфейс родного языка.
Когда практичный, используйте memcached, чтобы сохранить полные элементы, вместо того, чтобы кэшировать единственное значение столбца от базы данных. Например, выводя на экран запись об объекте (счет, пользовательская история, или сообщение в блоге), загружают все данные для связанной записи от базы данных, и компилируют это во внутреннюю структуру, которая обычно требовалась бы приложением. Сохраните полный объект в кэше.
Сложные структуры данных не могут быть сохранены непосредственно. Большинство интерфейсов сериализирует данные
для Вас, то есть, поместите их в текстовую форму, которая может восстановить исходные указатели и вложение.
Использование Perl Storable
, Использование PHP serialize
, Использование Python cPickle
(или Pickle
) и Java использует Serializable
интерфейс. В
большинстве случаев используемый интерфейс сериализации настраиваем. Чтобы совместно использовать данные,
хранившие в memcached экземплярах между различными интерфейсами
языка, рассмотрите использование общего решения для сериализации, такого как ДЖСОН (Объектная нотация
Javascript).