Набор memcached не сохранен
4 ответа
В моем случае я предоставил значение, но байты были не совсем тем, что я упомянул в команде set, поскольку формат команды:
set KEY META_DATA EXPIRY_TIME LENGTH_IN_BYTES
поэтому для тех, кто просто скопировал команду, не зная, почему она не хранит ключ, и пришел сюда за ответом, это может помочь:
Вам необходимо указать значение точно таких же байтов, которые вы указали в последнем параметре команды set.
следующее не будет работать:
также следующее не будет:
Поэтому, когда вы вводите значение, оно должно быть точно таким же байтом, например:
Хотя вы не задаете конкретный вопрос, я предполагаю, что вы хотите сохранить значение. Вы можете проверить с примером по умолчанию из руководства Memcached.
Вы определяете, что хотите сохранить ключ, но не указываете значение.
В следующем примере указывается, что вы хотите сохранить значение "tutorialspoint", без флагов, время ожидания 900 и зарезервировать 9 байтов для значения. Эти 9 байтов указаны в следующей строке: "memcached". В вашем примере я не вижу значения.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
'set Test 0 100 10', затем введите значение, длина которого равна 10。
в
set
команда принимает 4 аргумента:
- ключ - это произвольный ключ, который вы позже будете использовать для получения значения
- флаг - использовать
0
без флагов - ttl - время жизни в секундах. это то, как долго memcache будет хранить вашу ценность.
- размер - в байтах. Число байт вашего значения.
В моем случае я пренебрегал расчетом количества байтов, и поэтому я продолжал получать ошибку «ошибка клиента, неверный блок данных».