Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да запазите и извлечете низ с акценти в redis?

Самият сървър 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, така че на практика не би трябвало да е проблем.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Интегрирането на библиотеката на Flask-Mail и Redis Queue дава грешка

  2. Защо данните се съхраняват със странни ключове в Redis, когато използвате Jedis с Spring Data?

  3. Как да вложите списък в структура в Redis, за да намалите най-високото ниво?

  4. Как да преминете към нов главен възел, когато използвате Redis със Sentinel и redis-py?

  5. Как Redis Streams се справя с използването на цялата налична памет?