Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Làm cách nào để lưu và truy xuất chuỗi có dấu trong redis?

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ế.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi 99 khi kết nối với localhost:6379. Không thể gán địa chỉ yêu cầu

  2. Khởi động mùa xuân + redis

  3. Kết nối trực tiếp với Redis bằng javascript (phía máy khách)?

  4. Redis Async APIs

  5. Không có phản hồi sau khi kết nối từ celery sang redis qua ssl