Come faccio a verificare in PHP se un valore è memorizzato in Memcache senza recuperarlo? Non mi piace recuperarlo perché i valori che ho impostato sono tutti di 1 MB di dimensioni e dopo averlo scaricato, non ne ho alcuna utilità, quindi sto sprecando risorse. Lo sto usando in uno script che controlla se alcune chiavi sono memorizzate nella cache di memcache e in caso contrario le legge da una sorgente di dati lenta e le imposta in memcache.Verificare se esiste una chiave in Memcache
Modifica: Cosa succede se uso Memcached::append
per aggiungere NULL
alla chiave che sto verificando? Restituisce TRUE
in caso di successo o FALSE
in caso di errore. Memcached::getResultCode
restituirà Memcached::RES_NOTSTORED
se la chiave non esiste. In questo modo, controllo se la chiave esiste e dovrebbe mettere la chiave sopra l'elenco LRU giusto?
Grazie.
Sì, ma prima devo essere sicuro che non sia già impostato. Perché se è già impostato, quindi mi piacerebbe sprecare la lettura dei dati da una sorgente lenta. Se uso get() per verificare, allora sprecherò l'I/O della rete perché il valore è 1MB è la dimensione. – Matic
@Matic il "problema" è che memcached non è stato progettato pensando alla rete, quindi suppongo che questo sia il motivo per cui tale funzionalità è stata omessa. Se l'I/O di rete è un problema, allora è meglio usare un database kv. Capisco che a volte non vuoi un'assegnazione extra anche se l'IO di rete non è un problema, ma questo non è possibile con memcached. Redis ha una tale caratteristica. – themihai