Pacchetto google.appengine.api.memcache
Riepilogo
API Memcache.
Fornisce all'applicazione memcached-alike agli sviluppatori di applicazioni che archiviano i dati in memoria quando non è richiesto uno spazio di archiviazione affidabile tramite l'API DataStore, mentre si vogliono prestazioni più elevate.
Contenuti
- class google.appengine.api.memcache.Client(servers=None, debug=0, pickleProtocol=2, pickler=function, unpickler=function, pload=None, pid=None, make_sync_call=None, _app_id=None)source
-
Basi: oggetto
Oggetto client Memcache, attraverso il quale vengono richiamate tutte le operazioni memcache.
Esistono diversi metodi per mantenere la compatibilità a livello di origine con la popolare libreria memcache Python esistente.
Qualsiasi metodo che utilizza un argomento "chiave" accetterà quella chiave come stringa (unicode o meno) o tupla di (hash_value, stringa) in cui l'hash_value, normalmente utilizzato per lo sharding su un'istanza memcache, viene invece ignorato, poiché Google App Engine gestisce lo sharding in modo trasparente. Le chiavi in memcache sono solo byte, senza una codifica specificata. Tutti questi metodi possono generare TypeError se viene fornito un valore chiave fasullo e un ValueError se la chiave è troppo grande.
Qualsiasi metodo che utilizza un argomento "value" accetta come valore qualsiasi stringa (unicode o meno), un oggetto Python int, long o pickle-able, inclusi tutti i tipi nativi. Riceverai dalla cache lo stesso tipo in cui l'hai inserito inizialmente.
La classe Client non è sicura per i thread rispetto ai metodi get(), cas() e cas_multi() (e altri metodi correlati a confronti e insiemi). Pertanto, gli oggetti Client non devono essere utilizzati da più di un thread ai fini della CAS. Tieni presente che il client globale per le funzioni a livello di modulo è a posto perché non espone nessuno dei metodi CAS.
- add(key, value, time=0, min_string_len=0, spazio dei nomi=Nessuno)source
Imposta il valore di una chiave se l'elemento non è già presente in memcache.
Parametri-
key – Tasto da impostare. Per informazioni dettagliate, consulta la documentazione sul client.
-
value - Valore da impostare. Qualsiasi tipo. Se complesso, verrà sottaceto.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
min_zip_len - Opzione ignorata per la compatibilità.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Vero se aggiunto. False per errore.
-
- add_multi(mapping, time=0, key_prefixnofollow='', min_compress_len=0, spazio dei nomi=Nessuno)source
Imposta i valori di più chiavi se gli elementi non sono già memorizzati nella memcache.
Parametri-
mapping - Dizionario delle chiavi ai valori.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
key_prefix - Prefisso da anteporre a tutte le chiavi.
-
min_zip_len - Opzione di compatibilità non implementata.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Elenco di chiavi i cui valori NON sono stati impostati perché esistono già in memcache. Per il successo totale, l'elenco deve essere vuoto.
-
- add_multi_async(mapping, time=0, key_prefixnofollow='', min_zip_len=0, spazio dei nomi=Nessuno, rpc=Nessuno)origine
Versione asincrona di add_multi(). Nota un valore di ritorno diverso.
RestituisceVedi _set_multi_async_with_policy().
- cas(chiave, valore, tempo=0, min_compress_len=0, spazio dei nomi=Nessuno)origine
Aggiornamento Confronta e imposta.
Ciò richiede che la chiave sia stata precedentemente recuperata con get() o get(..., for_cas=True) e che non siano state apportate modifiche alla chiave da quel recupero. L'utilizzo tipico è:
chiave = ... client = memcache.Client() valore = client.gets(key) # OR client.get(key, for_cas=True) <valore aggiornato> ok = client.cas(chiave, valore)
Se due processi eseguono codice simile, il primo che chiama cas() avrà esito positivo (ok == True), mentre il secondo non avrà esito positivo (ok == False). Può essere utilizzato per rilevare le condizioni della gara.
NOTA: alcuni stati (l'ID CAS) sono archiviati nell'oggetto client per ogni chiave utilizzata con get(). Per evitare un aumento costante dell'utilizzo della memoria, devi utilizzare un oggetto client quando utilizzi cas() e la durata dell'oggetto client deve essere limitata a quella di una richiesta HTTP in entrata. Non puoi utilizzare l'API globale delle funzioni.
Parametri-
key – Tasto da impostare. Per informazioni dettagliate, consulta la documentazione sul client.
-
value: il nuovo valore.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
min_zip_len - Opzione ignorata per la compatibilità.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Vero se aggiornato. Falso nell'errore RPC o se l'ID CAS non corrisponde.
-
- cas_multi(mapping, time=0, key_prefixnofollow='', min_zip_len=0, spazio dei nomi=Nessuno)source
Aggiornamento e confronto per più chiavi.
Per una spiegazione, consulta la stringa cas().
Parametri-
mapping - Dizionario delle chiavi ai valori.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
key_prefix - Prefisso da anteporre a tutte le chiavi.
-
min_zip_len - Opzione di compatibilità non implementata.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Elenco di chiavi i cui valori NON sono stati impostati perché il confronto non è riuscito. Per il successo totale, l'elenco deve essere vuoto.
-
- cas_multi_async(mapping, time=0, key_prefixnofollow='', min_zip_len=0, spazio dei nomi=Nessuno, rpc=Nessuno)origine
Versione asincrona di cas_multi(). Nota un valore di ritorno diverso.
RestituisceVedi _set_multi_async_with_policy().
- cas_reset()origine
-
Cancella gli ID CAS memorizzati.
- origine debuglog()
-
Funzione di logging per le informazioni di debug.
Questo è un metodo puramente compatibile. In Google App Engine, la soluzione è no-no.
- decr(key, delta=1, namespace=None, initial_value=None)source
Diminuisci in modo atomico il valore di una chiave.
Internamente, il valore è un numero intero non firmato a 64 bit. Il valore di Memcache viene abbassato da zero a zero.
La chiave deve già esistere nella cache per poter essere ridotta. Per informazioni dettagliate, consulta la documentazione di incr().
Parametri-
key - Chiave per diminuire. Se una raccolta iterabile, ogni chiave viene applicata come offset. Per i dettagli, consulta la stringa del documento del client.
-
delta – Valore intero non negativo (int o long) per diminuire la chiave di, impostando il valore predefinito 1.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
-
initial_value - valore iniziale da mettere nella cache, se non esiste già. Il valore predefinito, Nessuno, non creerà una voce cache, se non esiste già.
Se la chiave era un singolo valore, il nuovo valore intero lungo o Nessuno se la chiave non era nella cache non può essere diminuito per qualsiasi altro motivo oppure si è verificato un errore di rete/RPC/server.
Se la chiave era una raccolta iterabile, verrà restituito un dizionario che mappa le chiavi fornite ai valori e i valori hanno lo stesso significato del valore di ritorno singolare di questo metodo.
Aumenta-
ValueError: se il numero è negativo.
-
TypeError: se il delta non è un int o lungo.
-
- decr_async(key, delta=1, namespace=None, initial_value=None, rpc=None)source
Versione asincrona di decr().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce lo stesso tipo di valore restituito da decr().
- delete(key, seconds=0, namespace=None)origine
Elimina una chiave dalla memcache.
Parametri-
key – Tasto da eliminare. Per i dettagli, consulta la documentazione sul client.
-
secondi: numero facoltativo di secondi per rendere gli elementi eliminati "bloccati" per le operazioni di "aggiunta". Il valore può essere un delta rispetto all'ora corrente (fino a 1 mese) o un tempo epoch assoluto di Unix. Il valore predefinito è 0, il che significa che gli elementi possono essere aggiunti immediatamente. Con o senza questa opzione, un'operazione "set" funzionerà sempre. I valori in virgola mobile verranno arrotondati al secondo intero più vicino.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
DELETE_NETWORK_FAILURE (0) in caso di errore di rete, DELETE_ITEM_MISSING (1) se il server ha provato a eliminare l'elemento ma non ce l'ha, oppure DELETE_SUCCESSFUL (2) se l'elemento è stato effettivamente eliminato. Può essere utilizzato come valore booleano, dove un errore di rete è l'unica condizione non valida.
-
- delete_multi(keys, seconds=0, key_prefixnofollow='', namespace=Nessuno)origine
Elimina più chiavi contemporaneamente.
Parametri-
Keys – Elenco delle chiavi da eliminare.
-
secondi: numero facoltativo di secondi per rendere gli elementi eliminati "bloccati" per le operazioni di "aggiunta". Il valore può essere un delta rispetto all'ora corrente (fino a 1 mese) o un tempo epoch assoluto di Unix. Il valore predefinito è 0, il che significa che gli elementi possono essere aggiunti immediatamente. Con o senza questa opzione, un'operazione "set" funzionerà sempre. I valori in virgola mobile verranno arrotondati al secondo intero più vicino.
-
key_prefix - Prefisso da inserire in tutte le chiavi quando si inviano le chiavi specificate a memcache. Consulta la documentazione per get_multi() e set_multi().
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
True se tutte le operazioni sono state completate correttamente. False se uno o più non sono stati completati.
-
- delete_multi_async(keys, seconds=0, key_prefix='', namespace=None, rpc=None)source
Versione asincrona di delete_multi(). Nota il valore di ritorno diverso.
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce None se si è verificato un errore di rete o un elenco di valori di stato, laddove ogni stato corrisponde a una chiave ed è DELETE_SUCCESSFUL, DELETE_ITEM_MISSING o DELETE_NETWORK_FAILURE (consulta la stringa del documento delete() per i dettagli).
- scollega_all()origine
-
Chiude tutte le connessioni ai server memcache.
Questo è un metodo puramente compatibile. In Google App Engine, la soluzione è no-no.
- fonte flush_all()
Elimina tutti i contenuti in memcache.
RestituisceVero in caso di esito positivo, Falso in RPC o errore del server.
- flush_all_async(rpc=Nessuno)origine
Versione asincrona di flush_all().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce True su un successo, False su RPC o un errore del server.
- source (dimentica_dead_hosts())
-
Reimposta lo stato attivo di tutti i server.
Questo è un metodo puramente compatibile. In Google App Engine, la soluzione è no-no.
- get(key, namespace=None, for_cas=False)origine
Cerca una chiave in memcache.
Se hai più elementi da caricare, è molto più efficiente utilizzare invece get_multi(), che li carica in un'unica operazione collettiva, riducendo la latenza di rete che altrimenti sarebbe necessaria per svolgere molte operazioni get() serializzate.
Parametri-
key: la chiave in memcache da cercare. Per informazioni dettagliate sul formato, consulta la documentazione sul client.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
-
for_cas – Se True, richiedi e archivia gli ID CAS sul client (consulta l'operazione cas() di seguito).
Il valore della chiave, se trovato in memcache, altrimenti Nessuno.
-
- get_multi(keys, key_prefixnofollow='', spazio=Nessuno, for_cas=False)origine
Cerca più chiavi da memcache in un'unica operazione.
Questo è il modo consigliato per eseguire caricamenti collettivi.
Parametri-
Chiavi: elenco delle chiavi da cercare. Le chiavi possono essere stringhe o tuple di (hash_value, stringa). Tuttavia, Google App Engine esegue automaticamente lo sharding e l'hashing, pertanto il valore hash viene ignorato. Per utilizzare la memorizzazione nella cache, le chiavi sono solo serie di byte e non hanno una codifica particolare.
-
key_prefix - Prefisso da anteporre a tutte le chiavi quando si parla con il server; non incluso nel dizionario restituito.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
-
for_cas – Se True, richiedi e archivia gli ID CAS sul client.
Un dizionario delle chiavi e dei valori presenti in memcache. Anche se è stato specificato il prefisso key_prefix, quel key_prefix non sarà sulle chiavi del dizionario restituito.
-
- get_multi_async(keys, key_prefix='', namespace=None, for_cas=False, rpc=None)source
Versione asincrona di get_multi().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce {} se si è verificato un errore di rete, altrimenti un dict proprio come get_multi() restituisce.
- get_stats() origine
Visualizza le statistiche memcache per questa applicazione.
Tutte queste statistiche possono essere reimpostate a causa di varie condizioni temporanee. Forniscono le migliori informazioni disponibili al momento della chiamata.
RestituisceDizionario che associa nomi statistici a valori associati. Statistiche e relativi significati associati:
hit: numero di richieste di recupero della cache che generano un hit della cache. non riuscito: numero di richieste di recupero della cache che generano un errore della cache. byte_hits: somma dei byte trasferiti al momento della richiesta di recupero. Rollover per
zero in caso di overflow.
items: numero di coppie chiave/valore nella cache. byte: dimensioni totali di tutti gli elementi presenti nella cache. old_item_age: quanto tempo è trascorso in secondi dall'elemento meno recente nel
È stato eseguito l'accesso alla cache. Indica in quanto tempo un nuovo elemento rimarrà nella cache senza essere accessibile. _non_per quanto tempo è trascorso dalla creazione dell'elemento.
In caso di errore, restituisce None.
- get_stats_async(rpc=Nessuno)origine
Versione asincrona di get_stats().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce None se si è verificato un errore di rete, altrimenti restituisce un dict proprio come get_stats().
- get(key, namespace=Nessuno)origine
-
Un alias per get(..., for_cas=True).
- incr(key, delta=1, namespace=None, initial_value=None)source
Aumenta in modo atomico il valore di una chiave.
Internamente, il valore è un numero intero non firmato a 64 bit. Memcache non controlla gli extra a 64 bit. Il valore, se troppo grande, va a capo.
A meno che non venga specificato un valore initial_value, la chiave deve già esistere nella cache per poter essere incrementata. Per inizializzare un contatore, specifica initial_value o set() al valore iniziale, sotto forma di numero intero decimale ASCII. I futuri get() della chiave, post-incrementali, saranno comunque un valore decimale ASCII.
Parametri-
key – Chiave da incrementare. Se una raccolta iterabile, ogni chiave viene applicata come offset. Per i dettagli, consulta la stringa del documento del client.
-
delta: valore intero non negativo (int o lungo) per incrementare la chiave di, impostando il valore predefinito 1.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
-
initial_value - valore iniziale da mettere nella cache, se non esiste già. Il valore predefinito, Nessuno, non creerà una voce cache, se non esiste già.
Se la chiave era un singolo valore, il nuovo valore intero lungo o Nessuno se la chiave non era nella cache non può essere incrementato per nessun altro motivo oppure si è verificato un errore di rete/RPC/server.
Se la chiave era una raccolta iterabile, verrà restituito un dizionario che mappa le chiavi fornite ai valori e i valori hanno lo stesso significato del valore di ritorno singolare di questo metodo.
Aumenta-
ValueError: se il numero è negativo.
-
TypeError: se il delta non è un int o lungo.
-
- incr_async(key, delta=1, namespace=None, initial_value=None, rpc=None)source
Versione asincrona di incr().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce lo stesso tipo di valore incr().
- offset_multi(mapping, chiave_prefisso='', spazio dei nomi=Nessuno, valore_iniziale=Nessuno)origine
Offset di più chiavi in base a un delta, che aumenta e diminuisce in gruppo.
Parametri-
mapping: chiavi di mappatura del dizionario a delta (numeri positivi o interi) da applicare a ogni chiave corrispondente.
-
key_prefix - Prefisso da anteporre a tutte le chiavi.
-
initial_value - Valore iniziale da mettere nella cache, se non esiste già. Il valore predefinito, Nessuno, non creerà una voce cache, se non esiste già.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Mappatura delle chiavi di input del dizionario su nuovi valori interi. Il nuovo valore sarà Nessuno se si verifica un errore, la chiave non esiste già o il valore non era un tipo intero. I valori verranno aggregati al valore intero massimo senza segno a 64 bit e il valore di underflow sarà minimo a zero.
-
- offset_multi_async(mapping, key_prefixnofollow='', spazio dei nomi=Nessuno, valore_iniziale=Nessuno, rpc=Nessuno)origine
Versione asincrona di offset_multi().
RestituisceUn'istanza UserRPC il cui metodo get_result() restituisce un dict proprio come quello di offset_multi().
- replace(key, value, time=0, min_zip_len=0, namespace=Nessuno)origine
Sostituisce il valore di una chiave, senza che l'elemento non sia già presente nella cache.
Parametri-
key – Tasto da impostare. Per informazioni dettagliate, consulta la documentazione sul client.
-
value - Valore da impostare. Qualsiasi tipo. Se complesso, verrà sottaceto.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
min_zip_len - Opzione ignorata per la compatibilità.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
True se sostituito. False per errore RPC o cache non rilevata.
-
- replace_multi(mapping, time=0, key_prefixnofollow='', min_compress_len=0, spazio dei nomi=Nessuno)source
Sostituzione dei valori di più chiavi, se gli elementi non sono memorizzati nella cache.
Parametri-
mapping - Dizionario delle chiavi ai valori.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
key_prefix - Prefisso da anteporre a tutte le chiavi.
-
min_zip_len - Opzione di compatibilità non implementata.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Elenco di chiavi i cui valori NON sono stati impostati perché già esistenti in memcache. Per il successo totale, l'elenco deve essere vuoto.
-
- replace_multi_async(mapping, time=0, key_prefixnofollow='', min_zip_len=0, spazio dei nomi=Nessuno, rpc=Nessuno)source
Versione asincrona di replace_multi(). Nota un valore di ritorno diverso.
RestituisceVedi _set_multi_async_with_policy().
- set(key, valore, tempo=0, min_compress_len=0, spazio dei nomi=Nessuno)origine
Imposta il valore di una chiave, indipendentemente dal contenuto precedente nella cache.
A differenza di add() e replace(), questo metodo imposta (o sovrascrive) il valore in memcache indipendentemente dai contenuti precedenti.
Parametri-
key – Tasto da impostare. Per informazioni dettagliate, consulta la documentazione sul client.
-
value - Valore da impostare. Qualsiasi tipo. Se complesso, verrà sottaceto.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
min_zip_len - Opzione ignorata per la compatibilità.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Vero se impostato. False per errore.
-
- set_multi(mapping, time=0, key_prefixnofollow='', min_zip_len=0, spazio dei nomi=Nessuno)source
Impostare più valori delle chiavi contemporaneamente, indipendentemente dai contenuti precedenti.
Parametri-
mapping - Dizionario delle chiavi ai valori.
-
ora: data di scadenza facoltativa, il numero relativo di secondi dall'ora corrente (fino a 1 mese) o il tempo assoluto di Unix. Per impostazione predefinita, gli elementi non scadono mai, anche se potrebbero essere rimossi a causa della pressione della memoria. I valori in virgola mobile verranno arrotondati per eccesso al secondo intero più vicino.
-
key_prefix - Prefisso da anteporre a tutte le chiavi.
-
min_zip_len - Opzione di compatibilità non implementata.
-
Spazio dei nomi: una stringa che specifica uno spazio dei nomi facoltativo da utilizzare nella richiesta.
Un elenco di chiavi i cui valori NON sono stati impostati. Per il successo totale, questo elenco deve essere vuoto.
-
- set_multi_async(mapping, time=0, key_prefixnofollow='', min_compress_len=0, spazio dei nomi=Nessuno, rpc=Nessuno)source
Versione asincrona di set_multi(). Nota un valore di ritorno diverso.
RestituisceVedi _set_multi_async_with_policy().
- set_servers(server)origine
-
Imposta il pool di server memcache utilizzati dal client.
Questo è un metodo puramente compatibile. In Google App Engine, la soluzione è no-no.
- google.appengine.api.memcache.create_rpc(deadline=None, callback=None)source
Crea un oggetto RPC da utilizzare con l'API memcache.
Parametri-
scadenza - Scadenza facoltativa in secondi per l'operazione; l'impostazione predefinita è una scadenza specifica del sistema (in genere 5 secondi).
-
callback - Richiamabile facoltativo al completamento.
Un oggetto apiproxy_stub_map.UserRPC specializzato per questo servizio.
-
- google.appengine.api.memcache.setup_client(client_obj)origine
Imposta l'istanza dell'oggetto Client da utilizzare per tutti i metodi a livello di modulo.
Utilizza questo metodo se vuoi associare al tuo client funzioni del cliente persistenti_id() o permanenti_load().
NOTA: non esponiamo i metodi _async come funzioni, perché sono troppo oscurati e non esploriamo get(), cas() e cas_multi() perché mantengono lo stato sull'oggetto client.
Parametriclient_obj – Istanza dell'oggetto memcache.Client.