2015-05-16 20 views
32

Mi chiedevo quali caratteri sono considerati validi in una chiave Redis. Ho cercato su Google per un po 'di tempo e non riesco a trovare nessuna informazione utile.Convenzione di denominazione e caratteri validi per una chiave Redis

Come in Python, il nome della variabile valida deve appartenere alla classe [a-zA-Z0-9_]. Quali sono i requisiti e le convenzioni per le chiavi Redis?

risposta

57

Parte di questo viene risposto here, ma questo non è completamente un duplicato, come si sta chiedendo sui personaggi ammessi e convenzioni.

Per quanto riguarda caratteri validi in chiavi Redis, the manual explains this completely:

chiavi

Redis sono sicuri binario, questo significa che è possibile utilizzare qualsiasi sequenza binaria come una chiave, da una stringa come "foo" al contenuto di un file JPEG. Anche la stringa vuota è una chiave valida.

Poche altre regole su tasti:

chiavi molto lunghe non sono una buona idea, per esempio una chiave di 1024 byte è una cattiva idea, non solo la memoria-saggio, ma anche perché la ricerca della chiave nel il set di dati potrebbe richiedere numerosi confronti costosi con le chiavi. Anche quando il compito da svolgere è quello di abbinare l'esistenza di un grande valore, ricorrere all'hashing (per esempio con SHA1) è un'idea migliore, specialmente dal punto di vista della memoria e della larghezza di banda.

Le chiavi molto corte spesso non sono una buona idea. Non ha molto senso scrivere "u1000flw" come chiave se invece è possibile scrivere "user: 1000: followers". Quest'ultimo è più leggibile e lo spazio aggiunto è minore rispetto allo spazio utilizzato dall'oggetto chiave stesso e dall'oggetto valore. Mentre i tasti brevi ovviamente consumano un po 'meno di memoria, il tuo compito è trovare il giusto equilibrio.

Provare a seguire uno schema. Ad esempio "object-type: id" è una buona idea, come in "user: 1000". I punti o i trattini vengono spesso utilizzati per i campi a più parole, come in "commento: 1234: reply.to" o "commento: 1234: risposta a".

La dimensione massima consentita della chiave è 512 MB.

+3

Questo è quello che voglio. – andy

+0

Quindi possiamo avere spazio nel nome della chiave qui? – Vipul

+1

@Vipul: sì, "questo significa che puoi usare qualsiasi sequenza binaria come una chiave", anche se sulla riga di comando dovrai mettere virgolette su quella chiave altrimenti "SET un tasto il mio valore" non funzionerà, mentre 'SET "qualche chiave" "il mio valore" 'sarà. –

Problemi correlati