Quando si chiama lo script Lua da Redis è possibile passare valori in due array: KEYS e ARGV. Qual è la differenza? In che modo Redis tratta i valori nell'array KEYS? Cosa succede se, nel mio script, devo usare le chiavi generate dinamicamente in fase di esecuzione?Perché esistono gli array KEY e ARGV quando si chiamano gli script Redua Lua?
risposta
Tutte le vostre domande trovano risposta nella pagina di EVAL
, ma dal momento che lei ha chiesto ...:
Qual è la differenza?
KEYS
viene utilizzato per passare i nomi dei tasti mentre ARGS
dovrebbe essere per niente altro. Questo non è esattamente applicato (vale a dire la maggior parte delle volte sarebbe ok se li mischia) ma potrebbe portare a potenziali problemi se non seguito.
In che modo Redis tratta i valori nell'array KEYS?
I contenuti di KEYS
vengono controllati per verificare che tutte le chiavi siano disponibili per il frammento di Redis che sta eseguendo lo script. Questo meccanismo è in grado di consentire l'esecuzione di script in una distribuzione di cluster Redis.
E se nel mio script dovessi usare le chiavi generate dinamicamente in fase di esecuzione?
Vedere le risposte precedenti: è fattibile, ma si andrebbe contro le raccomandazioni. Lo script sarà sicuro da eseguire solo su un'istanza Redis stand alone e poiché questo comportamento non è specificato, potrebbe interrompersi nelle versioni future.
- 1. Tipi quando si distruggono gli array
- 2. Perché dobbiamo usare i metodi __dunder__ anziché gli operatori quando chiamano tramite super?
- 3. Perché gli array supportano IList?
- 4. Perché la mia tastiera riceve gli stessi eventi di key-up e key-down più volte?
- 5. C++ modifica gli elementi di char * argv []
- 6. Perché si chiamano "banda di quattro"?
- 7. Come posso rendere gli script Lua non decompilabili?
- 8. problema con gli script postun quando si rinomina pacchetto munin
- 9. Perché Cygwin può eseguire gli script .bat?
- 10. Google Chrome console.log() incoerenza con gli oggetti e gli array
- 11. Perché la cecarianza e la controvarianza si chiamano così?
- 12. Perché javascript promette asincrono quando si chiamano solo funzioni sincrone?
- 13. Comportamento imprevisto in numpy, quando si dividono gli array
- 14. equivale a metodi quando si utilizzano gli array java
- 15. Perché gli array non sono espandibili?
- 16. definizione e looping attraverso gli array tcl
- 17. Come si chiamano più script MSBuild da uno script MSBuild
- 18. Quando si scontrano gli hash?
- 19. Perché c'è uno speciale nuovo e cancella per gli array?
- 20. Gli script npm ignorano gli errori
- 21. Perché utilizzare gli array paralleli in Java?
- 22. StructuralComparisons per gli array
- 23. Perché utilizzare gli argomenti/*, */around e perché utilizzare >>> quando si estrae la lunghezza di un array?
- 24. gestione errori di transazione quando gli oggetti non esistono
- 25. Come si esegue un file js usando gli script npm?
- 26. Perché i thread si chiamano processi leggeri?
- 27. Perché '::' e '->' funzionano (ordinariamente) in modo intercambiabile quando si chiamano i metodi dai moduli Perl?
- 28. Gli "algoritmi" esistono nella programmazione funzionale?
- 29. Esistono script PHP compilati?
- 30. Esistono java.net.URI validi per gli archivi nidificati?
Avete un'idea, come gestire il multi chiave, che verrà utilizzato nel comando SORT come "SORT mySet BY myHash: * -> ordine GET myHash: * -> nome'? Posso passare a 'myHash: *' oa qualcosa del genere? – Schovi
@Schovi che non sembra essere correlato a questa domanda e risposta - si prega di rivedere le domande esistenti su Stack Overflow, o di pubblicarne uno nuovo –
Potrebbe per favore spiegare di più su "I TASTI sono controllati per verificare che tutte le chiavi siano disponibili per il frammento di Redis che sta eseguendo lo script yin in un cluster Redis "O ci fornisci qualche link su cosa succederà quando useremo i valori ARGV come chiave? E qual è lo svantaggio di creare dinamicamente chiavi durante l'ambiente cluster. Sono più preoccupato per l'affermazione "potrebbe rompersi nelle versioni future". Per favore aiuto. –