Сервер Redis сам хранит все данные в виде двоичных объектов, поэтому он не зависит от кодировки.Сервер будет просто хранить то, что отправлено клиентом (включая символы UTF-8).
Вот несколько экспериментов:
$ echo téléphone | hexdump -C
00000000 74 c3 a9 6c c3 a9 70 68 6f 6e 65 0a |t..l..phone.|
c3a9 - представление символа 'é'.
$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"
На самом деле данные правильно хранятся на сервере Redis.Однако, когда он запускается в терминале, клиент Redis интерпретирует выходные данные и применяет функцию sdscatrepr для преобразования непечатаемых символов (определение которых зависит от локали и в любом случае может быть нарушено для многобайтовых символов).
Простой обходной путь - запустить Redis-Cli с опцией 'raw':
$ redis-cli --raw
> get t
téléphone
Ваше собственное приложение, вероятно, будет использовать одну из клиентских библиотек, а не Redis-Cli, поэтому оно должноне будет проблемой на практике.