Ce face APPEND / STRLEN
APPEND lipește value la finalul valorii existente. Dacă cheia nu există, o creează, exact ca SET. Comanda întoarce lungimea nouă a șirului.
STRLEN (din Redis 2.2.0) întoarce lungimea valorii în octeți, nu în caractere: o literă cu diacritice în UTF-8 (de exemplu „ș”) ocupă 2 octeți. Pentru o cheie care nu există, întoarce 0.
Parametri
| Parametru | Descriere |
|---|---|
key |
Cheia string. |
value |
Textul de adăugat la final (pentru APPEND). |
Ce returnează
Ambele comenzi întorc un (integer): lungimea în octeți după adăugare (APPEND), respectiv lungimea curentă (STRLEN).
Exemple
Exemplul 1: Construirea unui jurnal scurt
Primul APPEND creează cheia; al doilea adaugă la final.
APPEND jurnal:ana "login;"
APPEND jurnal:ana "cos;"
GET jurnal:ana
STRLEN jurnal:ana
Ieșire în redis-cli
127.0.0.1:6379> APPEND jurnal:ana "login;"
(integer) 6
127.0.0.1:6379> APPEND jurnal:ana "cos;"
(integer) 10
127.0.0.1:6379> GET jurnal:ana
"login;cos;"
127.0.0.1:6379> STRLEN jurnal:ana
(integer) 10
Exemplul 2: STRLEN numără octeți
„Iași” are 4 litere, dar „ș” ocupă 2 octeți în UTF-8, deci STRLEN întoarce 5.
SET oras "Iași"
STRLEN oras
STRLEN cheie:inexistenta
Ieșire în redis-cli
127.0.0.1:6379> SET oras "Iași"
OK
127.0.0.1:6379> STRLEN oras
(integer) 5
127.0.0.1:6379> STRLEN cheie:inexistenta
(integer) 0
Greșeli frecvente
- Un string care tot crește cu
APPENDpoate ajunge foarte mare (limita este 512 MB). Pentru jurnale, o listă cuLTRIMsau un stream cuMAXLENeste de obicei mai potrivit. - Nu folosi
STRLENca să numeri caracterele unui text cu diacritice: întoarce octeți.
Comenzi înrudite
SET: Salvează o valoare text la o cheie, opțional cu expirare (EX/PX), doar dacă nu există (NX) sau doar dacă există (XX).SETRANGE / GETRANGE: SETRANGE suprascrie o parte dintr-un string de la o poziție dată; GETRANGE citește doar o bucată din el.LPUSH / RPUSH: Adaugă elemente la începutul (LPUSH) sau la sfârșitul (RPUSH) unei liste, creând lista dacă lipsește.XADD: Adaugă un eveniment (o intrare cu câmpuri și valori) la finalul unui stream Redis și întoarce ID-ul lui.