Bản thân máy chủ Redis lưu trữ tất cả dữ liệu dưới dạng đối tượng nhị phân, vì vậy nó không phụ thuộc vào bảng mã. Máy chủ sẽ chỉ lưu trữ những gì được gửi bởi máy khách (bao gồm cả các ký tự UTF-8).
Dưới đây là một số thử nghiệm:
$ echo téléphone | hexdump -C
00000000 74 c3 a9 6c c3 a9 70 68 6f 6e 65 0a |t..l..phone.|
c3a9 là đại diện của ký tự 'é'.
$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"
Trên thực tế, dữ liệu được lưu trữ chính xác trong máy chủ Redis. Tuy nhiên, khi nó được khởi chạy trong một thiết bị đầu cuối, ứng dụng khách Redis sẽ diễn giải đầu ra và áp dụng hàm sdscatrepr để biến đổi các ký tự không thể in được (có định nghĩa phụ thuộc vào ngôn ngữ và có thể bị hỏng đối với các ký tự nhiều byte).
Một giải pháp đơn giản là khởi chạy redis-cli với tùy chọn 'raw':
$ redis-cli --raw
> get t
téléphone
Ứng dụng của riêng bạn có thể sẽ sử dụng một trong các thư viện máy khách thay vì redis-cli, vì vậy nó không phải là vấn đề trong thực tế.