APPEND / STRLEN în Redis & In-Memory Data Store

APPEND adaugă text la sfârșitul unei valori string; STRLEN întoarce lungimea valorii în octeți.

Sintaxă comandă
APPEND key value
STRLEN key

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 APPEND poate ajunge foarte mare (limita este 512 MB). Pentru jurnale, o listă cu LTRIM sau un stream cu MAXLEN este de obicei mai potrivit.
  • Nu folosi STRLEN ca 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.