Ce face COPY
COPY (din Redis 6.2.0) face o copie completă a cheii source la destination, inclusiv expirarea. Funcționează pentru orice tip: string, hash, listă, set, zset, stream.
Implicit nu suprascrie o destinație existentă; cu REPLACE o înlocuiește. Cu DB copiezi cheia în altă bază de date numerotată de pe același server.
Parametri
| Parametru | Descriere |
|---|---|
source |
Cheia de copiat. |
destination |
Cheia nouă. |
DB destination-db |
Numărul bazei de date de destinație (implicit baza curentă). |
REPLACE |
Suprascrie destinația dacă există. |
Ce returnează
1 dacă s-a copiat, 0 dacă nu (de exemplu destinația există și lipsește REPLACE).
Exemple
Exemplul 1: Copie de siguranță înaintea unei modificări
Al doilea COPY întoarce 0 pentru că destinația există; cu REPLACE reușește.
HSET pret:produse caiet 12 pix 4
COPY pret:produse pret:produse:backup
COPY pret:produse pret:produse:backup
COPY pret:produse pret:produse:backup REPLACE
Ieșire în redis-cli
127.0.0.1:6379> HSET pret:produse caiet 12 pix 4
(integer) 2
127.0.0.1:6379> COPY pret:produse pret:produse:backup
(integer) 1
127.0.0.1:6379> COPY pret:produse pret:produse:backup
(integer) 0
127.0.0.1:6379> COPY pret:produse pret:produse:backup REPLACE
(integer) 1
Exemplul 2: Copiere în baza de date 1
Utilă ca să pregătești date de test fără să atingi baza principală.
COPY pret:produse pret:produse DB 1
Ieșire în redis-cli
127.0.0.1:6379> COPY pret:produse pret:produse DB 1
(integer) 1
Greșeli frecvente
COPYpe o cheie foarte mare copiază toate elementele și poate bloca serverul o perioadă.- Opțiunea
DBnu funcționează în Redis Cluster, unde există doar baza 0.
Comenzi înrudite
RENAME / RENAMENX: Redenumește o cheie; RENAMENX o redenumește doar dacă numele nou nu este deja folosit.TYPE: Arată tipul valorii unei chei: string, list, set, zset, hash, stream sau none dacă nu există.EXISTS: Verifică dacă una sau mai multe chei există și întoarce câte dintre ele au fost găsite.