Набор memcached не сохранен

введите описание изображения здесь

Следующий шаг последовал:

telnet localhost 11211
set Test 0 100 10
get Test 
CLIENT_ERROR bad data chunk
ERROR
set amit 2 2 2 
get amit 
CLIENT_ERROR bad data chunk
ERROR

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 аргумента:

  1. ключ - это произвольный ключ, который вы позже будете использовать для получения значения
  2. флаг - использовать 0без флагов
  3. ttl - время жизни в секундах. это то, как долго memcache будет хранить вашу ценность.
  4. размер - в байтах. Число байт вашего значения.

В моем случае я пренебрегал расчетом количества байтов, и поэтому я продолжал получать ошибку «ошибка клиента, неверный блок данных».

Другие вопросы по тегам