Samotný server Redis ukládá všechna data jako binární objekty, takže není závislý na kódování. Server pouze uloží to, co odešle klient (včetně znaků UTF-8).
Zde je několik experimentů:
$ echo téléphone | hexdump -C
00000000 74 c3 a9 6c c3 a9 70 68 6f 6e 65 0a |t..l..phone.|
c3a9 je reprezentace znaku 'é'.
$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"
Ve skutečnosti jsou data správně uložena na serveru Redis. Když je však spuštěn v terminálu, klient Redis interpretuje výstup a aplikuje funkci sdscatrepr k transformaci netisknutelných znaků (jejichž definice je závislá na národním prostředí a u vícebajtových znaků může být stejně narušena).
Jednoduchým řešením je spustit redis-cli s možností 'raw':
$ redis-cli --raw
> get t
téléphone
Vaše vlastní aplikace bude pravděpodobně používat některou z klientských knihoven spíše než redis-cli, takže by to v praxi neměl být problém.