Может ли кто-нибудь сказать мне, как анализировать ключи bytearray из Redis?

Я получил такой ключ: "\x04y\x03\x00\x00K" от моего Redis, и я полностью запутался в его значении.

Являются ли «\ x04» шестнадцатеричной строкой, а «y» - символом ascii? Так ли это, почему ключ сочетает в себе оба?

Спасибо заранее.

edit: я использую Jedis (java-клиент для Redis) и создаю ключ в виде массивов байтов. Мои коды (в java) примерно такие:

jedis.set(aByteArr, value)

Во время выполнения кода я открыл собственный клиент, предоставленный Redis, выполнив команду «МОНИТОР», чтобы увидеть, какой ключ на самом деле сохраняется в Redis. И вот что я нашел:

... НАБОР "\x04y\x03\x00\x00K" "строка"


person bayinamy    schedule 20.12.2012    source источник
comment
Redis никогда не управляет данными или ключами, и то, и другое, вероятно, связано с вашим клиентом Redis или с тем, как вы передаете ему данные. Чтобы кто-нибудь мог вам помочь, можете ли вы показать какой-нибудь реальный пример кода, показывающий эту проблему?   -  person anydot    schedule 29.12.2012
comment
Спасибо за ответ! Я обновил свой вопрос, надеюсь, его можно решить.   -  person bayinamy    schedule 01.01.2013


Ответы (1)


\x представляет шестнадцатеричный escape-символ. Таким образом, ключ массива байтов закодирован в последовательности шестнадцатеричных символов в Redis.

person bayinamy    schedule 10.07.2014
comment
там нет только шестнадцатеричных символов, есть и другие символы, в этом примере ключ заканчивается на \x00K... вот еще пример значения ключа: \x03\xcc\x1b\xe0\xe0yT ‹-- как преобразовать это либо в строку, либо в массив байтов? - person ante.sabo; 29.06.2020