Как memcache хранит данные?
Я новичок в кэшировании и понятия не имею, как данные хранятся в кешировании. Я попытался прочитать несколько примеров в Интернете, но каждый из них предоставляет фрагменты кода для хранения и получения данных, а не объясняет, как данные кэшируются с помощью memcache. Я прочитал, что он хранит данные в парах ключей, значений, но я не могу понять, где хранятся эти пары ключ-значение?
Также может кто-нибудь объяснить, почему данные, поступающие в кеш, хэшируются или зашифровываются? Я немного запутался между сериализацией данных и хэш-данными.
Ответы
Ответ 1
Несколько цитат из страницы Memcache в Википедии:
API-интерфейсы Memcached предоставляют гигантский хэш таблица распределена по нескольким машины. Когда таблица заполнена, последующие вставки вызывают более старые данные для очищаться, по крайней мере, в последнее время (LRU) порядок.
и
Серверы хранят значения в ОЗУ; если сервер заканчивается из ОЗУ, он отбрасывает самые старые значения. Поэтому клиенты должен обрабатывать Memcached как переходный кэш; они не могут предположить, что данные хранится в Memcached, все еще там когда им это нужно.
Остальная часть страницы в Википедии довольно информативна, и это может помочь вам начать работу.
Ответ 2
Они хранятся в памяти на сервере, таким образом, если вы часто используете один и тот же ключ/значение, и вы знаете, что они не изменятся, пока вы можете сохранить их в памяти для более быстрого доступа.
Ответ 3
Я не очень хорошо знаком с memcached, поэтому возьмите то, что я должен сказать, с солью: -)
Memcached - это отдельный процесс или набор процессов, которые хранят хранилище значений ключа в памяти, чтобы их можно было легко получить позже. В некотором смысле, они предоставляют другую глобальную область, которая может быть разделена различными аспектами вашей программы, позволяя вычислять значение один раз и использоваться во многих различных и отдельных областях вашей программы. В другом смысле они обеспечивают быструю базу данных забывчивость, которая может использоваться для хранения временных данных. Данные не сохраняются постоянно, но в целом они будут храниться за пределами срока службы конкретного запроса (возможно, Memcached не сможет хранить ваши данные, поэтому каждое чтение будет пропущено, но в целом это указывает на то, что вы не правильно ли настроили его для использования).
Данные, поступающие в кеш, не должны быть хэшированы или зашифрованы (но обе вещи могут случиться с данными, в зависимости от механизма кэширования.)
Сериализация данных фактически не имеет ничего общего с какой-либо концепцией - вместо этого это процесс изменения данных из одного формата (как правило, один подходящий для хранения в памяти) к другому (обычно подходит для хранения в постоянном носителе). Другим термином для этого процесса является marshalling и unmarshalling.