RENAME / RENAMENX în Redis & In-Memory Data Store

Redenumește o cheie; RENAMENX o redenumește doar dacă numele nou nu este deja folosit.

Sintaxă comandă
RENAME key newkey
RENAMENX key newkey

Ce face RENAME / RENAMENX

RENAME mută valoarea (și expirarea) de la key la newkey. Dacă newkey există deja, este suprascrisă, iar valoarea veche este ștearsă.

RENAMENX refuză redenumirea dacă newkey există, ca să nu pierzi date. Ambele dau eroare dacă cheia sursă nu există.

Parametri

Parametru Descriere
key Cheia existentă.
newkey Noul nume.

Ce returnează

RENAME: OK. RENAMENX: 1 dacă a redenumit, 0 dacă newkey există deja.

Exemple

Exemplul 1: Publicarea atomică a unui raport

Construim raportul sub un nume temporar, apoi îl redenumim. Clienții văd fie raportul vechi, fie pe cel nou complet.

HSET raport:tmp vanzari 15400 comenzi 212
RENAME raport:tmp raport:octombrie
RENAME raport:tmp raport:noiembrie

Ieșire în redis-cli

127.0.0.1:6379> HSET raport:tmp vanzari 15400 comenzi 212
(integer) 2
127.0.0.1:6379> RENAME raport:tmp raport:octombrie
OK
127.0.0.1:6379> RENAME raport:tmp raport:noiembrie
(error) ERR no such key

Exemplul 2: RENAMENX protejează cheia existentă

Cheia profil:ana există, deci redenumirea nu se face.

SET profil:ana vechi
SET profil:nou proaspat
RENAMENX profil:nou profil:ana
GET profil:ana

Ieșire în redis-cli

127.0.0.1:6379> SET profil:ana vechi
OK
127.0.0.1:6379> SET profil:nou proaspat
OK
127.0.0.1:6379> RENAMENX profil:nou profil:ana
(integer) 0
127.0.0.1:6379> GET profil:ana
"vechi"

Greșeli frecvente

  • Dacă newkey era o cheie mare, RENAME o șterge implicit, ceea ce poate bloca serverul ca un DEL.
  • În Redis Cluster, ambele chei trebuie să fie în același hash slot (folosește hash tag-uri).

Comenzi înrudite

  • COPY: Copiază valoarea unei chei (de orice tip) la o cheie nouă, opțional în altă bază de date.
  • DEL / UNLINK: Șterge una sau mai multe chei; UNLINK eliberează memoria în fundal, fără să blocheze serverul.
  • EXISTS: Verifică dacă una sau mai multe chei există și întoarce câte dintre ele au fost găsite.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: RENAME / RENAMENX

Ai o nelămurire despre utilizarea comenzii RENAME / RENAMENX sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.