Redis не заботится о формате вещей, если вы не используете числовые операторы, такие как incr
, hincrby
и т.д .; кроме этого, строки, поля хеш-функции, полезные нагрузки pub / sub и т. д. являются непрозрачными двоичными значениями, которые определяются исключительно как , что указано клиентом . Поскольку вы упоминаете StackExchange.Redis, если вы используете .NET string
для заполнения RedisValue
, то этот string
будет кодироваться с UTF-8. Однако существуют и другие способы заполнения RedisValue
для указания произвольной двоичной полезной нагрузки, наиболее распространенным из которых будет byte[]
.
Возможно, что redis-cli - так как это текстовый инструмент - переключается на это представление с помощью простой эвристики «выглядит ли что-то не ASCII / не для печати» - что \x02
выглядит особенно подозрительно (это STX
?). Но фактические данные, проходящие через redis на publish
, являются необработанными двоичными данными.