Redis
 sql >> Database >  >> NoSQL >> Redis

Perché ci sono array KEYS e ARGV quando si chiamano gli script Redis Lua?

Tutte le tue domande trovano risposta in EVAL pagina, ma dal momento che hai chiesto...:

Qual è la differenza?

KEYS viene utilizzato per passare i nomi delle chiavi mentre ARGS dovrebbe essere per qualsiasi altra cosa. Questo non è esattamente applicato (ovvero la maggior parte delle volte ti andrebbe bene mescolarli) ma potrebbe portare a potenziali problemi se non viene seguito.

In che modo Redis tratta i valori nell'array KEYS?

Il contenuto di KEYS vengono controllati per verificare che tutte le chiavi siano disponibili per lo shard Redis che esegue lo script. Questo meccanismo è attivo per consentire l'esecuzione di script in una distribuzione del cluster Redis.

Cosa succede se, nel mio script, devo utilizzare chiavi generate dinamicamente in fase di esecuzione?

Vedi le risposte precedenti:è fattibile ma andresti contro i consigli. Il tuo script sarà sicuro per l'esecuzione solo su un'istanza Redis autonoma e poiché questo comportamento non è specificato, potrebbe interrompersi nelle versioni future.