sql >> Database teknologi >  >> NoSQL >> Redis

Hvordan gemmer og henter man streng med accenter i redis?

Redis-serveren gemmer selv alle data som binære objekter, så den er ikke afhængig af kodningen. Serveren gemmer blot det, der sendes af klienten (inklusive UTF-8-tegn).

Her er et par eksperimenter:

$ echo téléphone | hexdump -C
00000000  74 c3 a9 6c c3 a9 70 68  6f 6e 65 0a              |t..l..phone.|

c3a9 er repræsentationen af ​​'é' char.

$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"

Faktisk er dataene korrekt lagret på Redis-serveren. Men når den startes i en terminal, fortolker Redis-klienten outputtet og anvender sdscatrepr-funktionen til at transformere ikke-udskrivbare tegn (hvis definition er afhængig af lokalitet og alligevel kan brydes for multibyte-tegn).

En simpel løsning er at starte redis-cli med muligheden 'rå':

$ redis-cli --raw
> get t
téléphone

Din egen applikation vil sandsynligvis bruge et af klientbibliotekerne frem for redis-cli, så det burde ikke være et problem i praksis.




  1. Mongoose-aggregeringsforespørgsel mislykkes i Jest/Mockgoose-testen, fungerer andre steder

  2. MongoDB $substrCP

  3. Sådan gør du:Brug Apache HBase REST-grænsefladen, del 3

  4. 3 enkle trin til at forbedre sikkerheden for din MongoDB-installation